Einzelnen Beitrag anzeigen

nomad

Registriert seit: 28. Okt 2003
2 Beiträge
 
#1

Indy Download in einem extra Thread ausführen?

  Alt 28. Okt 2003, 18:58
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
Angehängte Dateien
Dateityp: zip indythread.zip (1,8 KB, 26x aufgerufen)
  Mit Zitat antworten Zitat