![]() |
Wie konnte ich by SaveDialog die richtige Component verwende
Hallo
ich verwende mehrere Komponenten wie von ImagFileLib, GraphicEx, ... Ich möchte die richtige Komponente verwenden versucht habe ich mit dieser Idee :
Delphi-Quellcode:
saveDialog1.Filter := 'GIF Image (*.gif)|*.gif|TIF Image (*.tif)|*.tif';
if savedialog1.Execute then begin case savedialog1.filterindex of 1 : in diesem Fall soll mein Programm z.B. ImageFileLib verwenden // also hier muss ich den Code richtig eingeben 2 : und hier GraphicEX end; end; |
Re: Wie konnte ich by SaveDialog die richtige Component verw
Per Endung, so macht es auch TImage
|
Re: Wie konnte ich by SaveDialog die richtige Component verw
Zitat:
|
Re: Wie konnte ich by SaveDialog die richtige Component verw
Je nach Endung, wird der Nachfahre Erzeugt (.gif->TGifImage, .jpg->JpegImage)
|
Re: Wie konnte ich by SaveDialog die richtige Component verw
Was wäre, wenn ich 2 Komponenten in USES habe, die beide jpeg erzeugen können
wie z.B. GraphicEx : kann .jpeg erstellen ImageFileLib : kann auch .jpeg erzeugen Was soll mein Programm tun, wenn ich die Image als .jpeg speichern möchte ? Muss es das Format von GraphicEx oder von ImageFileLib ? oder jenach dem, wie sie in USES stehen ? ___________________ |
Re: Wie konnte ich by SaveDialog die richtige Component verw
Dann kannst du nur direkt auf die Komponenten zugreifen, und die Dateien (Bilder) über die Komponente erzeugen und speichern!
Wenn du aber nur zb. eine Gif Komponente verwenden möchtest, die aber gleichzeitig auch in der GraphicEx enthalten ist, kannst du in der GraphicEx.pas die erweiterung ".gif" ausklammern, so wird diese nicht mehr durch die GraphicEx geladen, und du kannst Sie mit einer anderen Komponente weitervearbeiten! |
Re: Wie konnte ich by SaveDialog die richtige Component verw
Delphi-Quellcode:
Mit ExtractFileExt holst du die Erweiterung (inklusive dem Punkt) aus einem Dateinamen.
saveDialog1.Filter := 'GIF Image (*.gif)|*.gif|TIF Image (*.tif)|*.tif';
if savedialog1.Execute then begin case StrIndex(ExtractFileExt(savedialog1.Filename), ['.GIF', '.TIF']) of 0 : // Gif 1 : // Tif else raise Exception.Create('Bildformat wird nicht unterstützt'); end; end; StrIndex() ist wohl nicht in deiner VCL enthalten. Diese Funktion gibt es auch unter dem Namen CaseStr() oder CaseString(). Kopiert aus der JCL:
Delphi-Quellcode:
function StrIndex(const S: string; const List: array of string): Integer;
var I: Integer; begin Result := -1; for I := Low(List) to High(List) do begin {$IFDEF CLR} if SameText(S, List[I]) then {$ELSE} if AnsiSameText(S, List[I]) then {$ENDIF CLR} begin Result := I; Break; end; end; end; |
Re: Wie konnte ich by SaveDialog die richtige Component verw
Die Sachen, die mir nicht klar sind, hast weg gelassen ; )
Delphi-Quellcode:
Das war meine Frage : (
0 : // Gif
1 : // Tif ___ |
Re: Wie konnte ich by SaveDialog die richtige Component verw
Zitat:
HTH, Uli. |
Re: Wie konnte ich by SaveDialog die richtige Component verw
Zitat:
Nur wenn keine andere Lösung gibt, dann ja Immer wenn ich meine Image mit saveDialog speichre, dann wird die Komponent GraphicEx verwendet ! Wenn ich aber meine Image ohne SaveDialog speichre dann geht :
Delphi-Quellcode:
...
myjpeg.SaveToFile(ExtractFilePath(Application.ExeName)+'myjpeg.jpeg'); |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:47 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz