Nur kurz zur Erklärung, damit beim nächsten mal nicht wieder gefragt wird. Die Methode Get kehrt erst zurück, wenn sie fertig ist. Da kannst da du vor und danach so oft die Messageque abarbeiten wie du willst, die Methode wird dir trotzdem dein Programm blockieren. Wenn dann müsste das Apploication.ProcessMessages in die Get Methode rein. Da du aber da keinen Einfluss drauf hast, hilft es nur die Methode in einen separaten Thread auszulagern.
Vielen Dank für die Info.
Ich versuche ja den idftp1.get Befehl in einen Thread auszulagern. aber ich mache noch was falsch und weiss nicht genau was.
Thread:
Delphi-Quellcode:
unit threadtest;
interface
uses
System.Classes, f1diashow, System.SysUtils;
type
geetest =
class(TThread)
protected
procedure Execute;
override;
end;
implementation
procedure geetest.Execute;
begin
NameThreadForDebugging('
threadgee');
{ Place thread code here }
form1.idftp1.get(filelistFINAL[i4],gethomepath+'
/Temp/'+filelistFINAL[i4], true);
end;
end.
Versuche den Thread auf Form1 so zu starten:
geetest.Create(False);
Erhalte dann folgendes Fehler
Access Violation at Adress 61B3D93C, accessing adress 00000000)
Aber ich habe bis jetzt noch nie mit Threads gearbeitet und verstehe es irgendwie noch nicht ganz wie das funktioniert / was ich falsch mache.