Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Bild laden und wieder speichern (https://www.delphipraxis.net/90618-bild-laden-und-wieder-speichern.html)

Frischling 20. Apr 2007 16:26


Bild laden und wieder speichern
 
Hi,
mein Problem ist Folgendes:

Ich schreibe derzeit ein kleines Programm, in dem meine DVDs aufgelistet werden. Für jeden Film habe ich auch ein Cover(im jpg-Format). Ich habe mich anfangs noch damit zufrieden gegeben, dass ich die Cover in den entsprechenden Ordner kopieren musste, damit alles funzt.
Nun würde ich aber gern über eine SavePictureDialog-Komponente ein Cover von der Festplatte laden und in das Verzeichnis des Programms speichern.

Ich probiere hier schon alles mögliche. Problem ist, dass man, wenn man F1 drückt, auch wissen sollte, was man sucht. Und da scheitert es.


Delphi-Quellcode:
Cover:=TStringList.Create;
path := ExtractFilePath(ParamStr(0));
pathPic:=path + 'Data\' + EditEingabe.Text + '.jpg';

              with OpenPictureDialog1 do
                if Execute then
                 begin
                  Cover.LoadFromFile(FileName);
                  Cover.SaveToFile(PathPic);
                 end;
Die Fehlermeldung besagt, dass der Pfad nicht gefunden werden kann. Seltsamerweise wird versucht in den Ordner zu speichern, von dem ich lade(z.B. Eigene Bilder).

Wäre super, wenn mir jemand eine kleine Denkstütze geben könnte.

Pfoto 20. Apr 2007 16:43

Re: Bild laden und wieder speichern
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo!

ich habe mal schnell ein kleines Beispiel geschrieben, siehe Anhang,
die Datei wird nach dem Auswählen einfach in einen Unterordner des Programm kopiert
und zur Kontrolle im Programm angezeigt...



Gruß
Pfoto

Frischling 20. Apr 2007 17:31

Re: Bild laden und wieder speichern
 
Danke für dein beispiel. Aber leider funzt es nicht!

Ich hab mir das, was meiner Meinung nach für mich wichtig ist, übernommen und überarbeitet.

Fazit:
Es geht nicht.
Es wird versucht eine Titel.txt in eigene Bilder zu öffnen, die natürlich nicht da ist. In eigene Bilder will ich das Cover wählen, dass kopiert werden soll.
Und es will mir nicht einfallen, wieso das so ist. Titel.txt kann garnicht an dieser Stelle erscheinen.

Delphi-Quellcode:
pathPic:=path + 'Data\' + EditEingabe.Text + '.jpg';
                if OpenPictureDialog1.Execute then
                  CopyFile(PChar(OpenPictureDialog1.FileName), PChar(PathPic), false);

Pfoto 20. Apr 2007 17:40

Re: Bild laden und wieder speichern
 
Hallo nochmal,

was genau hat an meinem Beispiel nicht funktioniert?
bei mir gings nämlich ohne Probleme.
Denn wenn Du es bei Dir zum Laufen bekämest, könntest
Du ja darauf aufbauend es nach Deinen Vorstellungen verändern.

Warum da dauernd etwas von "Titel.txt" erscheint, kann ich
leider auch nicht nachvollziehen - vor allem weil man ja
standardmäßig nur Bildateien im Pic-Dialog auswählen kann.


Gruß
Pfoto

Frischling 20. Apr 2007 17:47

Re: Bild laden und wieder speichern
 
Der Fehler aus deinem Beispiel:

Unbekannter Bezeichner 'ChangeFilePath'!

Muss ich da noch eine bestimmte Unit vereinbaren?


Und der Titel.Txt-Fehler wird vom Debugger an folgender Position angegeben:

Delphi-Quellcode:
pathPic:=path + 'Data\' + EditEingabe.Text + '.jpg';
                if OpenPictureDialog1.Execute then
                  if CopyFile(PChar(OpenPictureDialog1.FileName), PChar(PathPic), false) then
                    Showmessage('Datei wurde kopiert');

               Kategorie:=TStringList.Create;
               Quali:=TStringList.Create;
               Titel:=TStringList.Create;
               Beschreibung:=TStringList.Create;
               pathG:=path + 'Genre\' + ComboBoxKategorie.Text + '.txt';
               pathQ:=path + 'Quali\' + ComboBoxQuali.Text + '.txt';
               pathB:=path + 'Data\' + EditEingabe.Text + '.txt';
               pathT:=path + 'Titel.Txt';
               Titel.LoadFromFile(pathT);
               Quali.LoadFromFile(pathQ); //Hier kommt die Fehlermeldung!
               Kategorie.LoadFromFile(pathG);
               Titel.Add(EditEingabe.Text);
               Titel.SaveToFile(PathT);
               Quali.Add(EditEingabe.Text);
               Quali.SaveToFile(PathQ);
               Kategorie.Add(EditEingabe.Text);
               Kategorie.SaveToFile(PathG);
               Beschreibung.AddStrings(MemoBeschreibung.Lines);
               Beschreibung.SaveToFile(PathB);
Und das ergibt nunmal keinen Sinn, da der Fehler nur bei OpenPictureDialog1 erscheint!

Frischling 20. Apr 2007 19:59

Re: Bild laden und wieder speichern
 
Sorry für den Doppelpost, aber:

Es hat geklappt :bounce1:

Ich musste das Kopieren der Bild-Datei über einen anderen Button realisieren, weil das sonst immer in dieser seltsamen Fehlermeldung endete.

Naja, so ist besser als nix. Danke nochmal für die Hilfe Pfoto :thumb:



Edit:
Jetzt geht es wieder nicht. Diesmal kommt nichtmal eine Fehlermeldung.

Frischling 22. Apr 2007 18:57

Re: Bild laden und wieder speichern
 
Wollte nur bescheid geben, dass ich es hinbekommen habe. Der Code zum Kopieren der Bilddateien war vollkommen richtig.
Der Fehler war:

Delphi-Quellcode:
path:=ExtractFilePath(ParamStr(0));
Habe das in:

Delphi-Quellcode:
Path:=ExtractFilePath(Application.ExeName);
geändert und siehe da, es geht :bounce1:


Danke nochmal für die Hilfe!


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:31 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