Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi OpenPictureDialog und verschiedene Bildformate (https://www.delphipraxis.net/55267-openpicturedialog-und-verschiedene-bildformate.html)

tobi1701 18. Okt 2005 22:44


OpenPictureDialog und verschiedene Bildformate
 
hallo,

ich habe gerade ein problem mit den tOpenPictureDialog.
ich habe ihn in ein programm eingebaut, in das bilder eingeladen werden sollen und zwar aus beliebigen formaten.
im object inspector zeigt der OpenFileDialog unter Filter auch sehr viele formate an (obwohl das ja nur der suchfilter für die dateien im dialog ist, oder?), aber in aktion sieht das ganz anders aus.
der Dialog kann von sich aus nur nach .dip .bmp .ico .emf und .wmf suchen.
wenn ich *.* in das suchfeld eingebe, erscheinen zwar die anderen bilder, aber schon beim markieren (vorschau soll geladen werden), stürzt das programm ab.

wie kann ich also die verschiedenen formate wirklich öfnnen?

ich öffne den dialog folgendermassen:

Delphi-Quellcode:
if OpenPictureDialog1.Execute then begin
  Image1.Picture.LoadFromFile(OpenPictureDialog1.Filename);
und wie kann ich das .gif format hinzufügen?

MarcoWarm 19. Okt 2005 05:36

Re: OpenPictureDialog und verschiedene Bildformate
 
ich könnte falsch liegen, aber:

Damit ein TPicture eine bestimmte Bildklasse verarbeiten kann muss sie vorher registriert werden:

z.B.
Code:
TPicture.RegisterFileFormat('PNG', 'Portable Network Graphics', TPNGObject);
das wird normalerweise in der Unit der ensprechenden Klasse bei initialization gemacht.
Es müsste also reichen die entsprechende Unit in dein Projekt einzubinden.

In unserem Beispielfall die Unit PNGImage.pas

tobi1701 19. Okt 2005 09:18

Re: OpenPictureDialog und verschiedene Bildformate
 
ach, das ist ja witzig, das wusste ich gar nicht.
ich sehe gerade, dass die unit bei delphi (6.0 pe) gar nicht dabei ist.
kennst du vieleicht eine seite, auf der man die units für die gängigsten bildformate finden kann?

MarcoWarm 19. Okt 2005 09:31

Re: OpenPictureDialog und verschiedene Bildformate
 
PNG ist noch bei keinem Win32 Delphi dabei gewesen.

die Klassen musst du dir leider zusammensuchen... aber geht ganz schnell via www.torry.net

tobi1701 19. Okt 2005 09:59

Re: OpenPictureDialog und verschiedene Bildformate
 
vielen dank für den link. ich bin noch recht neu dabei (bzw. nach sehr langer pause wieder dabei) und froh über jeden link, der mich zu guten resourcen führt.

edit:

was allerdings noch immer ungeklärt ist, ist wieso ich mit einem standard OpenImageDialog keine .jpeg datei öffnen kann.
ich kann dem TImage, das der dialog für mich öffnen soll, über den object inspector problemlos ein .jpeg zuweisen. aber im OpenImageDialog ist das nicht möglich. wieso?

Khabarakh 19. Okt 2005 13:08

Re: OpenPictureDialog und verschiedene Bildformate
 
Um ein JPEG zur Laufzeit zu laden, musst du die Unit "JPEG" einbinden. Im PropertyEditor kannst JPEGs laden, weil die PropertyEditor-Unit die JPEG-Unit schon einbindet.

Pfoto 19. Okt 2005 14:18

Re: OpenPictureDialog und verschiedene Bildformate
 
Ich weiß nicht, ob du diese Libary schon kennst:
GraphicEx

Die musst Du nur in die Uses-Klausel aufnehmen und bekommst dadurch zahlreiche Bildformate zur Verfügung gestellt.

Gruß
Pfoto

tobi1701 19. Okt 2005 14:45

Re: OpenPictureDialog und verschiedene Bildformate
 
gerade wollte ich posten, dass ich die GraphicEx gefunden und eingebunden habe ;)

als kleiner tip, falls das hier noch jemand liest: in der datei "GraphicConfiguration.inc" muss die LZW-kompression noch kurz aktiviert werden, da sie aus lizenzrechtlichen gründen per default nicht aktiviert ist. ansonsten funktioniert das .gif (und .tiff) format nicht.


edit:

hm, ich habe da noch ein kleines problem, es passt zwar nicht ganz hierher, aber ich frage trotzdem mal:
ich habe eine form, die ich mit ShowModal zeige. auf dieser form ist ein TImage, in das ein bild über den besagten OpenPictureDialog geladen wird.
wenn die form geschlossen wird (mit mrOk oder mrCancel) und später wieder mit ShowModal geöffnet wird, ist aber das bild im TImage natürlich immer noch sichtbar.

meine frage ist jetzt: wie kriege ich das wieder in den "grundzustand"?
mit .free oder .destroy bekomme ich fehler (es kann ja auch sein, dass in das Image gar nichts geladen wurde, das Image ist nur optional).

TeronG 19. Okt 2005 15:22

Re: OpenPictureDialog und verschiedene Bildformate
 
Zitat:

Zitat von tobi1701
ansonsten funktioniert das .gif (und .tiff) format nicht.

Hier im Forum suchenTGifImage funtzt bei mir recht schön ...

dahead 19. Okt 2005 15:39

Re: OpenPictureDialog und verschiedene Bildformate
 
mhh, ich würde einfach beim onclose (oder bei deinen buttons) das image auf visible := False setzen. beim laden via TOPD dann halt wieder auf visible.


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:44 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz