Application.ProcessMessages ist ja eigentlich das gleiche was auch IdAntiFreeze macht bzw. umgekehrt.
Von den beiden Lösungen kann ich also nicht wirklich profitieren.
Christian Seehase gab mir den Tip mit der Transfer Verlagerung in einen eigenen Thread.
Das hab ich jetzt schon häufiger gelesen, und hab mir deshalb dieses Beispiel durchgelesen:
http://bcb-tutorial.c-plusplus.de/Thread/artikel7.html
Jetzt würd ich gerne wissen ob ich die
Indy Komponente zB TCPClient in dem Thread selbst anlegen soll
oder wie bisher in dem Form1.
Edit:
mein Thread Objekt sieht zZ so aus (von einem
FTP test Client):
Delphi-Quellcode:
__fastcall TTransferThread::TTransferThread(
String ip,
String user,
String pw,
String filepath) : TThread(false)
{
Form1->FTP->Username = user;
Form1->FTP->Password = pw;
Form1->FTP->Host = ip;
file = filepath;
FreeOnTerminate = true; //Aufruf von TThread::Terminate() gibt Thread frei.
}
//---------------------------------------------------------------------------
void __fastcall TTransferThread::Execute()
{
Form1->FTP->Connect(true,4000);
Form1->FTP->Put(file,ExtractFileName(file));
}
//---------------------------------------------------------------------------