AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Wie konnte ich by SaveDialog die richtige Component verwende
Thema durchsuchen
Ansicht
Themen-Optionen

Wie konnte ich by SaveDialog die richtige Component verwende

Ein Thema von thomas2009 · begonnen am 20. Aug 2008 · letzter Beitrag vom 22. Aug 2008
Antwort Antwort
Seite 1 von 2  1 2      
thomas2009
(Gast)

n/a Beiträge
 
#1

Wie konnte ich by SaveDialog die richtige Component verwende

  Alt 20. Aug 2008, 20:19
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;
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Wie konnte ich by SaveDialog die richtige Component verw

  Alt 20. Aug 2008, 20:25
Per Endung, so macht es auch TImage
Markus Kinzler
  Mit Zitat antworten Zitat
thomas2009
(Gast)

n/a Beiträge
 
#3

Re: Wie konnte ich by SaveDialog die richtige Component verw

  Alt 20. Aug 2008, 20:40
Zitat von mkinzler:
Per Endung, so macht es auch TImage
Kannst mit das mit einem Beispiel erklären ?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Wie konnte ich by SaveDialog die richtige Component verw

  Alt 20. Aug 2008, 20:43
Je nach Endung, wird der Nachfahre Erzeugt (.gif->TGifImage, .jpg->JpegImage)
Markus Kinzler
  Mit Zitat antworten Zitat
thomas2009
(Gast)

n/a Beiträge
 
#5

Re: Wie konnte ich by SaveDialog die richtige Component verw

  Alt 20. Aug 2008, 20:48
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 ?



___________________
  Mit Zitat antworten Zitat
Benutzerbild von lbccaleb
lbccaleb

Registriert seit: 25. Mai 2006
Ort: Rostock / Bremen
2.037 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: Wie konnte ich by SaveDialog die richtige Component verw

  Alt 20. Aug 2008, 21:42
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!
Martin
MFG Caleb
TheSmallOne (MediaPlayer)
Die Dinge werden berechenbar, wenn man die Natur einer Sache durchschaut hat (Blade)
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 16. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#7

Re: Wie konnte ich by SaveDialog die richtige Component verw

  Alt 20. Aug 2008, 21:47
Delphi-Quellcode:
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;
Mit ExtractFileExt holst du die Erweiterung (inklusive dem Punkt) aus einem Dateinamen.
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;
  Mit Zitat antworten Zitat
thomas2009
(Gast)

n/a Beiträge
 
#8

Re: Wie konnte ich by SaveDialog die richtige Component verw

  Alt 20. Aug 2008, 23:26
Die Sachen, die mir nicht klar sind, hast weg gelassen ; )
Delphi-Quellcode:
    0 : // Gif
   
    1 : // Tif
Das war meine Frage : (


___
  Mit Zitat antworten Zitat
Benutzerbild von uligerhardt
uligerhardt

Registriert seit: 19. Aug 2004
Ort: Hof/Saale
1.746 Beiträge
 
Delphi 2007 Professional
 
#9

Re: Wie konnte ich by SaveDialog die richtige Component verw

  Alt 21. Aug 2008, 08:52
Zitat von thomas2009:
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 ?
Ich nehme an, die Unit, welche als letztes RegisterFileFormat für 'jpeg' aufruft, gewinnt. Welche das ist, dürfte, wie du schon vermutest, durch die Reihenfolge des "Usens" (Ist das ein Wort? ) bestimmt sein.

HTH,
Uli.
Uli Gerhardt
  Mit Zitat antworten Zitat
thomas2009
(Gast)

n/a Beiträge
 
#10

Re: Wie konnte ich by SaveDialog die richtige Component verw

  Alt 21. Aug 2008, 12:00
Zitat von lbccaleb:
... kannst du in der GraphicEx.pas die erweiterung ".gif" ausklammern, so wird diese nicht mehr durch die GraphicEx geladen ...
Keine schlechte Idee. Aber lieber nicht : (

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');
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:35 Uhr.
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