![]() |
Inhalt der For-Schleife funktioniert nicht richtig - warum?
Hallo,
ich möchte alle Datein, die mit ihrem Pfad in einer ListBox eingetragen sind zum einen in einer Image Komponente darstellen (es handelt sich ausschließlich um Bilddatein) und anschließend per FTP hochladen. Der Upload klappt ohne Probleme, aber in der Image Komponente wird erst am ende das letzte Bild angezeigt. Woran kann das liegen? Hier mal der entsprechende Code:
Delphi-Quellcode:
JpegToBMP ist eine procedure die wie der Name schon sagt ein Jpeg Bild in eine BMP Datei umwandelt um sie in der Image Komponente darstellen zu lassen.
for i := 0 to anz do begin
JpegToBMP(Listbox1.Items.Strings[i], Image1.Picture.Bitmap); //Image1.Picture.LoadFromFile(Listbox1.Items.Strings[i]); IdFTP1.Put(Listbox1.Items.Strings[i],ExtractFileName(Listbox1.Items.Strings[i])); end; Gruß Thomas |
Re: Inhalt der For-Schleife funktioniert nicht richtig - war
Hast du mal versucht, das ganze JPG2BMP-Gefasel zu umgehen, indem du "Jpeg" in die Uses-Klausel aufnimmst? :mrgreen:
Nur so nebenbei :duck: |
Re: Inhalt der For-Schleife funktioniert nicht richtig - war
Mach mal nach dem LoadFromFile ein Image1.Refresh. Da du in der Schleife deinem Fenster keine Zeit zum Luftholen läßt, kann es auch nicht seine Komponenten neuzeichnen. Ich gehe auch mal stark davon aus, dass dein programm nicht mehr reagiert wärend des Uploads. so was lagert man sinnvollerweise in Threads aus. lEin Tutorial zu Threads findest du auf meiner Homepage.
|
Re: Inhalt der For-Schleife funktioniert nicht richtig - war
du gibst Windows keine Chance, das Fenster bzw. die Image-Komponente neu zu zeichnen....
Delphi-Quellcode:
BTW: beim letzen Durchgang müsste es eigentlich zu einer Out-Of-Bounds-Exception kommen... 0 - anz sind (anz + 1) Durchgänge...
for i := 0 to anz do begin
JpegToBMP(Listbox1.Items.Strings[i], Image1.Picture.Bitmap); Image1.Update(); // dies sollte die Image-Komponente neu zeichnen lassen IdFTP1.Put(Listbox1.Items.Strings[i],ExtractFileName(Listbox1.Items.Strings[i])); end; entweder for I:=0 to anz - 1 do ... oder for i:=1 to anz do ... |
Re: Inhalt der For-Schleife funktioniert nicht richtig - war
Der Tipp mit dem Refresh klappt leider nicht! :(
Das Programm funktioniert auch noch, denn die ProgessBar läuft ohne probleme weiter. Gibt es sonst noch eine Möglichkeit? @malo: Ich nutze die JPEG in der uses Klausel. Aber dadurch lässt die Image Komponente ja noch lang nicht jpg Datein zu, oder? |
Re: Inhalt der For-Schleife funktioniert nicht richtig - war
Zitat:
|
Re: Inhalt der For-Schleife funktioniert nicht richtig - war
Das scheint wirklich so zu sein...
Aber auch mit der normalen LoadFromFile Funktion der Image Kompnente wird lediglich das letzte Bild dargestellt! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:55 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