Entwickler-Ecke
Dateizugriff - "Hänger" beim Kopieren mit Copyfile
blackbirdXXX - Di 29.07.03 11:21
Titel: "Hänger" beim Kopieren mit Copyfile
Wenn ich eine Datei mit
Delphi-Quelltext
1: 2:
| if not CopyFile(PChar(Quellé), PChar(Ziel), true) then label1.Caption := 'Fehler beim Kopieren'; |
Kopieren will und ich dies nach anzeigen des Formulares mache sieht man das Formular nicht.
Auch meine Statusanzeige nicht.
Wie kann ich machen das das Formular zuerst auftaucht. Nach jeder Datei stehen bleibt einen Balken vergrößert und dann erst weiterkopiert.
Dies ist mein Quelltext:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19:
| var Quelldatei, Zieldatei, pfad: string; i, max, fehler: Integer; begin pfad := ExtractFilePath(Application.ExeName) + 'data/'; CreateDirectory(PChar(step2.Edit1.Text + '/'), nil ); for i := 1 to dateiliste.Lines.Count do begin Quelldatei := dateiliste.Lines.Strings[i-1]; Zieldatei := step2.Edit1.Text + '/' + Quelldatei; if not CopyFile(PChar(pfad + Quelldatei), PChar(Zieldatei), true) then fehler := 1; max := 200 div dateiliste.Lines.Count; fortschritt.Width := max * i; end; if fortschritt.Width > 95 then begin fortschritt.Width := 200; exitform.Show; end; end; |
patrick - Di 29.07.03 12:40
wie heißt den die funktion in der du den quelltext eingebunden hast.
wenn du den quelltext unter onformcreate reinschreibst, wird der code bein initiallisieren des forms ausgeführt und das form wird nicht angezeigt.
wenn ich richtig liege füge den quelltext unter onformshow ein
wenn nicht... gib bitte genauere daten an wo und wie du den quelltext eingebunden hast THX
teebee - Di 29.07.03 14:16
Wenn Du Deine Statusanzeige aktualisieren willst, während die Schleife läuft, musst Du als letzte Anweisung innerhalb der Schleife ein
Application.ProcessMessages; einfügen. Damit gibst Du Deinem Programm die Möglichkeit, auf die Veränderung zu reagieren.
Gruß, teebee
Delete - Di 29.07.03 14:19
Eine ebenfalls gute Idee ist
SHFILEOPERATION. Die Methode des Explorers zum Kopieren, Verschieben und Löschen. Inkl. Dialog mit Progressbar, so dass du dich um absolut nichts kümmern musst.
Man kann übrigens auch mehrere Dateien auf einmal angeben ... :wink:
blackbirdXXX - Mi 30.07.03 09:06
Das mit Application.ProcessMessages funktioniert super.
Danke
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!