Erstmal ein freundliches Hallo an die Community
Ich hab mir schon einige Postings und Tutorials zum Thema Threads hier angeschaut, werd aber nicht draus schlau warum ich trotzdem noch Probleme mit meinem Programm hab: Das Programm soll bei klick auf einen Button per
Indy TIdHTTP.Get(
url) eine recht grosse
HTML Datei runterladen... ohne threading allerdings mit dem Nachteil dass das Programm bis zum Ende des Downloads nicht mehr reagiert.
Darum hab ich also versucht die Aktion über einen extra Thread auszuführen. Ich starte den Thread nun über den Buttonklick:
Delphi-Quellcode:
//unit1.pas
procedure TForm1.Button1Click(Sender: TObject);
var
DLThread: TDLThread;
begin
Button1.Enabled:=False;
DLThread:=TDLThread.Create(True);
DLThread.OnTerminate:=ThreadTerminate;
DLThread.Resume;
Label1.Caption := 'Status: Thread gestartet.'+#13#10+'Lade ca 1MB an Daten runter.';
end;
woraufhin auch der Thread gestartet wird:
Delphi-Quellcode:
//unit2.pas
procedure TDLThread.Execute;
begin
Synchronize(Download);
end;
procedure TDLThread.Download;
begin
Form1.IdHTTP1.Get('
http://www.rfc-editor.org/rfc-index2.html');
end;
Das Problem bleibt allerdings immer noch bestehen, die Applikation hängt solange
Indy am downladen ist...
Ich hoffe mir kann irgendjemand sagen was ich falsch mache.
Mit freundlichen Grüssen,
nomad