Hallo erst mal
Kurz mal ein Hinweis zu
ShFileOperation()
-- wenn du also Threads nutzen willst, unbedingt absolute Pfade verwenden:
Zitat von
http://msdn.microsoft.com/en-us/library/bb762164%28VS.85%29.aspx:
You should use fully-qualified path names with this function. Using it with relative path names is not thread safe.
Nun habe ich aber festgestellt, das wenn größere Datenmengen Transportiert, das er nicht weiterkomperliert bis die Datei oder Verzeichnis erfolgreich beendet wurde.
Ich glaube, du verwechselst hier was oder solltest dir darüber klar werden, was unter
compilieren zu verstehen ist. Du meinst wohl, dass das Programm nicht mehr reagiert, wenn du große Dateien kopierst?!
Delphi-Quellcode:
LThread := MyThread.Create(true);
LThread.GPfadFrom := LPfadFrom;
LThread.GFadTo := LPfadTo;
LThread.Suspended := False; //thread wird gestartet!!
Application.ProcessMessages;
Irgendwie seltsamer Code
Das mit den Properties kannst du so handhaben, das geht schon in Ordnung. Für das Starten des Threads gibt es doch die Methode
Start()
, d.h. du solltest es so machen:
Delphi-Quellcode:
LThread := MyThread.Create(true);
LThread.GPfadFrom := LPfadFrom;
LThread.GFadTo := LPfadTo;
LThread.Start(); // ab hier läuft dann der Kopierthread los
// Application.ProcessMessages; <<< das hier braucht es nicht
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)