2013-05-24 18 views
6

Kann jemand ein Bild in der Vorschau von TFileOpenDialog anzeigen?Vorschau eines Bildes mit TFileOpenDialog

Ich verwende ImageEn, um Bildinformationen anzuzeigen und dem Dialog zusätzliche Dateitypen hinzuzufügen. Zum Beispiel ... kann ich Bildinformationen über jp2, j2k und andere Dateitypen laden, die nicht unterstützt werden, aber wie man einen nicht unterstützten Bildtyp für die Vorschau mit ImageEn lädt.

Ich zeige Bildinformationen in dem Dialog an, der gut funktioniert, aber ich finde keine Informationen darüber, wie man ein nicht unterstütztes Bild irgendwo in den PreviewHandler lädt. Ich kann ImageEnIO verwenden, um die Dateiinformationen sowie eine Bitmap des Bildes zu erhalten.

TFileOpenDialog

Does TFileOpenDialog verwenden, um eine Vorschau-Handler das Bild oder auf eine andere Weise erforderlich angezeigt werden?

Es tut mir leid, ich habe keinen Code zum Anzeigen des Bildes, aber ich weiß nicht, wie es zu implementieren ist.

Rodrigo kommentierte Hosting Preview Handler in Delphi VCL-Anwendungen. dass der Windows Explorer keinen Vorschau-Handler verwendet, um die Bilder in der Vorschau anzuzeigen ... also nehme ich an, dass der TFileOpenDialog die gleiche API wie Windows Explorer verwendet, aber ich bin mir nicht einmal sicher. http://theroadtodelphi.wordpress.com/2013/05/24/hosting-preview-handlers-in-delphi-vcl-applications/

Wenn diese Frage zu breit ist, um hier akzeptiert zu werden, werde ich die Frage löschen.

+0

wäre OpenPictureDialog eine Option? – bummi

+0

Nein ... Ich weiß, wie das geht. Müssen Sie es mit TFileOpenDialog tun. – Bill

+0

@RRUZ, Remy Lebeau hat stattdessen Use IShellItemImageFactory veröffentlicht, da es intern an IThumbnailProvider delegiert (und an IExractImage und IExtractIcon, wenn IThumbnailProvider nicht verfügbar ist). http://embarcadero.newsgroups.archived.at/public.delphi.nativeapi/201007/1007283828.html Ist es besser, IShellItemImageFactory zu verwenden? – Bill

Antwort

4

...that the windows explorer does not use a preview handler to preview the images. Wenn ich sagte, dass ich meine für die Standard-Bildformate wie gif, jpeg, bmp, png und so weiter. Für andere benutzerdefinierte Formate müssen Sie einen Vorschau-Handler implementieren, zusätzlich können Sie ein Miniaturbild unter Verwendung einer Thumbnail Handlers und der IThumbnailProvider Schnittstelle registrieren.

+3

Falls Sie dies nicht vollständig erfassen, müssen Sie einen Vorschau-Handler implementieren und ihn bei der Shell registrieren. Sie implementieren dies ** außerhalb ** Ihrer Delphi App. Das liegt daran, dass die Shell eine Vorschau in einem Dateidialog anzeigt, selbst wenn der Dialog in Ihrer App gehostet wird. –

+0

Danke David. Es ist viel komplizierter als ich gedacht hätte, aber danke für deine Hilfe. – Bill