![]() |
Delphi-Version: 2010
For schleife
Hey Leute,
ich komme hier grade nicht weiter.:roll: Ich will Dateien in einer Listview eintragen.
Delphi-Quellcode:
Klappt alles wunderbar.
if add.FileName <> '' then begin
fneu.zip.ZipFileName := lblpfad.Caption; i2 := add.Files.Count; for i := 0 to i2 - 1 do begin neudatei := Extractfilename(add.Files[i]); item := dateilist.Items.Add; item.Caption := neudatei; item.SubItems.Add(Extractfilename(neupfad)+'/'+neudatei); fneu.zip.FSpecArgs.Add(add.Files[i]); fneu.zip.Add; Nun möchte ich aber noch das die Datei Größen in einem Subitem hinzugefügt werden
Delphi-Quellcode:
Hier ist das Problem das die Werte einfach immer überschrieben werden. Alle Dateien sind z.B 8 Bytes groß
for iz := 0 to dateilist.Items.Count-1 do begin
item.SubItems.Add(inttostr(fneu.zip[iz].CompressedSize)+' B'); item.SubItems.Add(datetostr(fneu.zip[iz].DateStamp)); ( Das Archiv wird trotzdem mit den richtigen Datei erstellt und die Dateien werden auch richtig hinzugefügt) |
AW: For schleife
Anscheinend willst du die Dateigrössen nachträglich einsetzen.
Delphi-Quellcode:
for iz := 0 to dateilist.Items.Count-1 do
begin item := dateilist.Items[iz]; // <==== ***** item.SubItems.Add(inttostr(fneu.zip[iz].CompressedSize)+' B'); item.SubItems.Add(datetostr(fneu.zip[iz].DateStamp)); |
AW: For schleife
Danke so geht es. Ähmm... nein ich trage sie nicht nachträglich nach so sieht das nun bei mir aus
Delphi-Quellcode:
Kann man das noch anders mit den For Schleifen machen?
var
i,i2,iz: Integer; neudatei : String; item : TLISTitem; begin dateilist.Enabled := false; lblstatus.Caption := 'Dateien werden hinzugefügt...'; fneu.Zip.DLLDirectory := ExtractFilePath(ParamStr(0)); add.Execute; if add.FileName <> '' then begin fneu.zip.ZipFileName := lblpfad.Caption; i2 := add.Files.Count; for i := 0 to i2 - 1 do begin neudatei := Extractfilename(add.Files[i]); item := dateilist.Items.Add; item.Caption := neudatei; item.SubItems.Add(Extractfilename(neupfad)+'/'+neudatei); fneu.zip.FSpecArgs.Add(add.Files[i]); fneu.zip.Add; fneu.zip.ZipComment := fneu.smemo2.Text; end; for iz := 0 to dateilist.Items.Count-1 do begin item := dateilist.Items[iz]; item.SubItems.Add(inttostr(fneu.zip[iz].CompressedSize)+' B'); item.SubItems.Add(datetostr(fneu.zip[iz].DateStamp)); end; end; if dialogshow then showmessage('Datei/en wurden erfolgreich hinzugefügt'); dateilist.Enabled := True; end; // wenn ich das alle in eine for-schleife packe geht das nur beim ersten mal gut, denn "i2 = add.fiels.count" und dann werden die Daten in der Listview wieder überschrieben. |
AW: For schleife
Du machst es doch nachträglich in der zweiten Schleife. Warum machst du das nicht alles in einer Schleife?
|
AW: For schleife
i2 := add.fiels.count; So beim zweiten klickt auf den Button fängt das ja wieder von vorne an und die ersten Daten werden überschrieben !
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:03 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-2025 by Thomas Breitkreuz