Verdammte Hacke. Ich dreh mich schon seit Stunden im Kreis.
Ob ihr mir bitte beim CodeReview helfen würdet.
Gegeben ist DXE, Indy10
Vorhaben: Ich lasse einen
FTP Download in einem Thread laufen.
Aktuelles Problem: Sobald ich eine Verbindung über den Thread aufbaue und den
FTP Server erfolgreich connecte, kann ich die Anwendung ohne Fehlermeldung schliessen.
Sobald ich eine Verbindung über den Thread aufbaue und die Anwendung sofort wieder schließe oder der
FTP Server Adresse nicht erreichbar ist (Timeout läuft)
hagelt es Zugriffsverletzungen beim Destroy. Ich komm einfach nicht drauf, woran es hängt oder wie ich die
FTP Verbindung im Thread richtig kappe.
Delphi-Quellcode:
type
TFTPThread = class(TThread)
private
FFTP: TIdFTP;
protected
procedure Execute; override;
public
constructor Create();
destructor Destroy; override;
end;
constructor TFTPThread.Create();
begin
FFTP := TIdFTP.Create(nil);
FFTP.Host := '127.0.0.1';
FFTP.UserName := 'mustermann';
FFTP.Passive := True;
FFTP.Password := 'geheim';
FFTP.Port := 21;
inherited Create(False);
FreeOnTerminate := True;
end;
destructor TFTPThread.Destroy;
begin
FreeAndNil(FFTP);
inherited Destroy;
end;
procedure TFTPThread.Execute;
begin
FFTP.Connect;
end;