TOpenPictureDialog для FMX?

#delphi #firemonkey #delphi-10.4-sydney

Вопрос:

В VCL я использовал topenpictureddialog для загрузки файлов изображений, потому что полезно видеть предварительный просмотр при выборе из длинного списка файлов. Я также использовал его для загрузки своего собственного двоичного формата файла, создав класс, производный от TGraphic, переопределив функции загрузки и рисования и зарегистрировав его в TPicture. Теперь я перешел на FMX и хотел бы получить аналогичный предварительный просмотр, но там нет TOpenPictureDialog. В настоящее время моей единственной альтернативой, по-видимому, является создание пользовательской формы для загрузки этих файлов, включая возможность просмотра папок и т. Д., Что кажется большой задачей для репликации всех функций topenpictureddialog. Прежде чем я это сделаю, я задаюсь вопросом, знает ли кто-нибудь о ранее существовавшем компоненте, который делает это? Я бы хотел изначально поддерживать Windows и OSX.

Если я в конечном итоге создам свой собственный компонент, будет ли проще начать с нуля или вывести и расширить TOpenDialog? Похоже, что TOpenDialog просто запускает диалоговое окно открытия Windows по умолчанию в Windows, поэтому кажется маловероятным, что я мог бы это сделать.

Это одна из немногих вещей, отсутствующих в FMX, которая доступна в VCL.

Комментарии:

1. Разве собственные системные диалоговые окна недостаточно хороши? В Windows любое диалоговое окно с файлом можно превратить в диалоговое окно предварительного просмотра файла, нажав Alt P (или нажав соответствующую кнопку на панели инструментов).

2. Это нормально для предварительного просмотра обычных файлов изображений, но не для моего пользовательского формата файлов. В VCL я создал свой собственный класс, производный от TGraphic, и зарегистрировал его в TPicture, чтобы он отображался в предварительном просмотре. TGraphic не существует в FMX, если только нет другого способа сделать это?

3. В Windows вы можете создать пользовательский обработчик предварительного просмотра для вашего формата файла. Затем ваши файлы можно просмотреть в любом окне проводника (включая, конечно, любой файловый диалог в любом приложении). Не знаю, как насчет Apple. Я предполагаю, что ваш пользовательский формат-это формат файла изображения (в противном TOpenPictureDialog случае подход кажется довольно неестественным)? Кроме того, настройка диалогового окна файлов Windows вполне выполнима .

4. Спасибо. Да, я уже рассматривал возможность создания обработчика предварительного просмотра, но это было сложнее, чем просто получить его для предварительного просмотра в TOpenPictureDialog. Это хорошее предложение, хотя, так что я рассмотрю его еще раз. У вас есть какой-либо пример кода для диалогового окна пользовательского файла, которое вы показали?

5. Извините, у меня нет такого примера. Как вы говорите, это более сложно (и обработчик Win32, очевидно, не будет работать на macOS), но я полагаю, что это не должно быть чрезмерно сложно. В конце концов, это довольно распространенный тип расширения оболочки.