Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Laden von .jpg in Listbox funzt net (https://www.delphipraxis.net/92864-laden-von-jpg-listbox-funzt-net.html)

SaFu 27. Mai 2007 21:30


Laden von .jpg in Listbox funzt net
 
Hallo zusammen

habe ein kleines Problem

Ich lade über OpenDialog .jpg dteien in eine Listbox hatte mal fnktioniert aber jetzt auf einmal nicht mehr

Die datei die auswähle soll in die Listbox geladen werden was mache ich falsch

Delphi-Quellcode:
procedure TForm4.Button7Click(Sender: TObject);
begin
 if OpenDialog1.Execute then; //Dateimenü öffnen
  FileListBox1.Update; //aktualisieren
end;

mkinzler 27. Mai 2007 21:33

Re: Laden von .jpg in Listbox funzt net
 
-Laß mal das Semikolon nach dem then weg.
-Du mußt ja irgendwas in die Listbox eintragen nur ein Update bringt ja nichts.
Was hast du geanu vor, was meinst du mit jpg reinladen?

SaFu 27. Mai 2007 21:36

Re: Laden von .jpg in Listbox funzt net
 
Ich wurde gerne über den Button das Opendialog öffnen, ein .jpg aus einen belibigen Ordner auswählen und da in die listbox übernehmen

mkinzler 27. Mai 2007 21:37

Re: Laden von .jpg in Listbox funzt net
 
Den Dateinamen?

Delphi-Quellcode:
procedure TForm4.Button7Click(Sender: TObject);
begin
if OpenDialog1.Execute then //Dateimenü öffnen
  FileListBox1.add( OpenDialog1.FileName); //aktualisieren
end;

Matze 27. Mai 2007 21:38

Re: Laden von .jpg in Listbox funzt net
 
Die Dateinamen bekommst du so da hinein:

Delphi-Quellcode:
if OpenDialog1.Execute then
  for i := 0 to OpenDialog1.Files.Count - 1 do
    FileListBox1.Items.Add(OpenDialog1.Files[i]);
Bei einer einzelnen Datei:

Delphi-Quellcode:
if OpenDialog1.Execute then
  FileListBox1.Items.Add(OpenDialog1.FileName);
Nicht getestet.


Edit: Da war Markus wohl schneller ...

SaFu 27. Mai 2007 21:43

Re: Laden von .jpg in Listbox funzt net
 
ja das geht so aber jetzt wird der ganze pfad mit übergeben habe ich vielleicht was falsch eingestellt im OI wie gesagt vorher ging das so :cry:

inherited 27. Mai 2007 21:45

Re: Laden von .jpg in Listbox funzt net
 
Delphi-Quellcode:
if OpenDialog1.Execute then
  FileListBox1.Items.Add(ExtractFileName(OpenDialog1.FileName));

Matze 27. Mai 2007 21:46

Re: Laden von .jpg in Listbox funzt net
 
Wenn du nur den Dateinamen möchtest, dann nutze Delphi-Referenz durchsuchenExtractFileName, die Endung bekommst du mit Delphi-Referenz durchsuchenChangeFileExt weg, indem du als neue Endung einen leeren String übergibst. Doch da hätte dir die Suche auch geholfen.

SaFu 27. Mai 2007 21:55

Re: Laden von .jpg in Listbox funzt net
 
Die Bilder müssen aber über das Opendialog in einem dafür angelegten ordner gespeichert werden macht das opendialog das nicht automatisch

bei mir liegen die ordenr in diesem ordner auf den greift dann die FileListbox zu

Delphi-Quellcode:
Bilddat:= ExtractFilePath(ParamStr(0))+'\Bilder\'; //Pfad in Variable übergeben
  FileListBox1.Directory:= Bilddat; //Laden des Ordners aus dem Pfad
muss man da jetzt ein savefile rein schreiben in die procedure

Delphi-Quellcode:
procedure TForm4.Button7Click(Sender: TObject);
begin
if OpenDialog1.Execute then
  FileListBox1.Items.Add(ExtractFileName(OpenDialog1.FileName));
end;
oder muss nicht die Filelistbox sondern der ordner angegeben werden??

Blackheart 27. Mai 2007 22:07

Re: Laden von .jpg in Listbox funzt net
 
Das sollte Helfen.
http://www.christian-stelzmann.de/in..._reloaded.html

SaFu 27. Mai 2007 22:14

Re: Laden von .jpg in Listbox funzt net
 
? komm gerade garnicht drauf kann es sein das ich das falsch dialog benutze

Matze 27. Mai 2007 22:20

Re: Laden von .jpg in Listbox funzt net
 
Ein OpenDialog ist dazu da, Dateien zu öffnen, das sagt ja auch der Name und steht sicher in der OH.
Was du allerdings möchtest, habe ich nicht verstanden.

SaFu 27. Mai 2007 22:22

Re: Laden von .jpg in Listbox funzt net
 
ok habe es schon nur jetzt bekomme ich diesen fehler wenn ich auf die datei in der Listbox klicke

Delphi-Quellcode:
JPEG Fehler #53
was ist das

und so habe ich es jetzt gemacht

Delphi-Quellcode:
procedure TForm4.Button7Click(Sender: TObject);
begin
if OpenDialog1.Execute then
  FileListBox1.Items.Add(ExtractFileName(OpenDialog1.FileName));
  FileListBox1.Items.SaveToFile(ExtractFileName('\Bilder'+(OpenDialog1.FileName)));
end;

Matze 27. Mai 2007 22:24

Re: Laden von .jpg in Listbox funzt net
 
Du hast nach dem then auf jedenfall ein begin - end vergessen, aber was hast du denn vor?
Dateien kopiert man mit Delphi-Referenz durchsuchenCopyFile.

mkinzler 27. Mai 2007 22:25

Re: Laden von .jpg in Listbox funzt net
 
Was willst du den Speichern?

SaFu 27. Mai 2007 22:26

Re: Laden von .jpg in Listbox funzt net
 
Mein bild was ich im opendialog auswähle soll in diesem ordner gespeichert werden

Delphi-Quellcode:
(ExtractFileName('\Bilder'));

Matze 27. Mai 2007 22:28

Re: Laden von .jpg in Listbox funzt net
 
Reicht es nicht, das einfach zu kopieren? Wieso der Umweg über die VCL?

mkinzler 27. Mai 2007 22:29

Re: Laden von .jpg in Listbox funzt net
 
Dann nimm das von Matze erwähnte CopyFile()
.SaveToFile() speichert die (String-)Liste in eine (Text-)Datei.

SaFu 27. Mai 2007 22:32

Re: Laden von .jpg in Listbox funzt net
 
ja die bilder sin z.b in Eigenebilder drin jetzt soll über das opendialog das ausgewählte .jpg in \bilder copiert werden.

Matze 27. Mai 2007 22:32

Re: Laden von .jpg in Listbox funzt net
 
Dann nimm doch die Funktion, wie oft sollen wir dir das denn noch sagen. :wall:

SaFu 27. Mai 2007 22:42

Re: Laden von .jpg in Listbox funzt net
 
ja versuche es ja gerade bekomm es aber nicht ganz hin

habe jetzt ein Problem mit PAsinChar

Matze 27. Mai 2007 22:44

Re: Laden von .jpg in Listbox funzt net
 
So viel kann man da nicht falsch machen:

Delphi-Quellcode:
CopyFile('alter Pfad', 'neuer Pfad', ggf_ueberschreiben_falls_vorhanden);
geht das nicht, dann mach es so:


Delphi-Quellcode:
CopyFile(PChar('alter Pfad'), PChar('neuer Pfad'), ggf_ueberschreiben_falls_vorhanden);
Anstelle von PChar kannst du auch PAnsiChar nutzen. Aber in der DP findest du zahlreiche funktionierende Beispiele für das Problem.

SaFu 27. Mai 2007 22:52

Re: Laden von .jpg in Listbox funzt net
 
geht sowas nicht

Delphi-Quellcode:
  CopyFile(PChar(ExtractFileName(OpenDialog1.FileName)), PChar(ExtractFileName('\Bilder'));
wie gesagt weil ich die datei aos dem Opendialog auswähle

es tut mir leid wenn ich nerve und es einfach ncht verstehe hab bald ne glatze weil mir vor lauter denken die haare ausfallen :lol:

Matze 27. Mai 2007 22:53

Re: Laden von .jpg in Listbox funzt net
 
ExtractFileName liefert dir etwas wie hallo.jpg, da weiß Windows natürlich nicht, wo es das hinkopieren soll. Lass diese Funktion einfach weg. Und der zweite Parameter erwartet ebenfalls einen kompletten Pfad einschließlich Dateiname.

SaFu 27. Mai 2007 22:57

Re: Laden von .jpg in Listbox funzt net
 
es soll ja die datei aus dem opendialog z.b hallo.jpg in \bilder\ kopiert werden sodas dann steht \bilder\hallo.jpg

es tut mir echt leid wenn ich es gerade überhaupt nicht blicke

Matze 27. Mai 2007 23:02

Re: Laden von .jpg in Listbox funzt net
 
Ohje, also, extra für dich, damit hier mal Schluss ist und ich ins Bett komme:

Delphi-Quellcode:
CopyFile(PChar(OpenDialog1.FileName),
  PChar(IncludeTrailingPathDelimiter(ExtractFilePath(OpenDialog1.FileName)) +
  'Bilder\' + ExtractFileName(OpenDialig1.FileName)), true);
Übersichtlicher:

Delphi-Quellcode:
AlterPfad := OpenDialog1.FileName;
NeuerPfad := IncludeTrailingPathDelimiter(ExtractFilePath(OpenDialog1.FileName)) +
  'Bilder\' + ExtractFileName(OpenDialig1.FileName);

CopyFile(PChar(AlterPfad), PChar(NeuerPfad), true);
Den Bilder-Pfad musst du natürlich ggf. vorm Kopieren erstellen, das geht mit Delphi-Referenz durchsuchenCreateDirectory oder bei mehreren neuen Ebenen mit Delphi-Referenz durchsuchenForceDirectories.

Edit: Meines Wissen benötigst du IncludeTrailingPathDelimiter nicht einmal, da ExtractFilePath den abschließenden Backslash anhängen müsste, also so:

Delphi-Quellcode:
AlterPfad := OpenDialog1.FileName;
NeuerPfad := ExtractFilePath(OpenDialog1.FileName) +
  'Bilder\' + ExtractFileName(OpenDialig1.FileName);

CopyFile(PChar(AlterPfad), PChar(NeuerPfad), true);

SaFu 27. Mai 2007 23:12

Re: Laden von .jpg in Listbox funzt net
 
ok ich gebe auf es funzt immer noch nicht der pfad mit dem ordner bilder ist da aber ich werde mal schauen ob ich es irgenwie hin bekomme will euch und dich nicht weiter nerven :(

Matze 27. Mai 2007 23:14

Re: Laden von .jpg in Listbox funzt net
 
Ich habe oben vorhin noch etwas editiert, ich hoffe, du hast die aktuelle Version genommen.

Lass dir doch mal die Pfade mittels SchowMessage ausgeben und überprüfe, ob diese stimmen:

Delphi-Quellcode:
ShowMessage(AlterPfad + #13#10 + NeuerPfad);

Edit: Achja, du könntest den Titel mal umbenennen, sodass er etwas über's Kopieren von Dateien aussagt.

SaFu 27. Mai 2007 23:20

Re: Laden von .jpg in Listbox funzt net
 
naja ganz klar es wird die datei von D:\eigenebilder in D:\eigenebilder\bilder kopiert obohl sie in einen anderen pfad muss der erste stimmt aber der zweite nicht.

Matze 27. Mai 2007 23:23

Re: Laden von .jpg in Listbox funzt net
 
Dann pass die Pfade eben so an, wie du sie haben möchtest. Hier kann dir so keiner helfen, woher sollen wir denn deine Verzeichnisstruktur kennen. Wenn du es selbst absolut nicht hinbekommst, dann poste den Inhalt beider Variablen und wie die Pfade auszusehen haben. Doch ich denke, das schaffst auch du.

Übrigens kannst du auch mittels

Delphi-Quellcode:
ShowMessage(SysErrorMessage(GetLastError));
den Fehler ausgeben lassen, der dein Programm zuletzt verursacht hat. In deinem Fall muss der Aufruf daher nach CopyFile erfolgen.

SaFu 27. Mai 2007 23:28

Re: Laden von .jpg in Listbox funzt net
 
ok so stimmen jetzt die pfade aber er copiert nichts

Delphi-Quellcode:
begin
if OpenDialog1.Execute then
 begin
 AlterPfad := OpenDialog1.FileName;
 NeuerPfad := ExtractFilePath(ParamStr(0))+('Bilder');

 CopyFile(PChar(AlterPfad), PChar(NeuerPfad), true);

Matze 27. Mai 2007 23:30

Re: Laden von .jpg in Listbox funzt net
 
Zitat:

Zitat von Matze
Und der zweite Parameter erwartet ebenfalls einen kompletten Pfad einschließlich Dateiname.

Bitte genau lesen und meine Code-Snippets zeigen das doch ebenfalls wunderschön! :wall:

SaFu 27. Mai 2007 23:37

Re: Laden von .jpg in Listbox funzt net
 
Es war eine sehr schwere geburt aber es funktioniert

Dank dir Tausendmal Matze für deine gedult

Delphi-Quellcode:
procedure TForm4.Button7Click(Sender: TObject);
var AlterPfad,NeuerPfad :string;
begin
if OpenDialog1.Execute then
 begin
 AlterPfad := OpenDialog1.FileName;
   NeuerPfad := ExtractFilePath(ParamStr(0))+('Bilder\'+ ExtractFileName(OpenDialog1.FileName));
   CopyFile(PChar(AlterPfad), PChar(NeuerPfad), true);
  FileListBox1.Items.Add(ExtractFileName(OpenDialog1.FileName));
 end;
end;
so klappts

:cheers:


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