Einzelnen Beitrag anzeigen

gee21

Registriert seit: 3. Jan 2013
199 Beiträge
 
Delphi 10.4 Sydney
 
#11

AW: Form reagiert nicht während idftp1.get trotz application.processmessages

  Alt 13. Jul 2014, 13:45
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 FehlerAccess 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.
Robert
  Mit Zitat antworten Zitat