Delphi-PRAXiS
Seite 1 von 4  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi OnWork wird nach Download ausgeführt? (https://www.delphipraxis.net/111050-onwork-wird-nach-download-ausgefuehrt.html)

TheMiller 28. Mär 2008 15:30


OnWork wird nach Download ausgeführt?
 
Hallo,

ich habe die Indy-Komponente in einen Thread gesteckt und ein onWork-Event programmiert. Doch leider wird das onWork erst nach dem vollendeten Download ausgeführt.

Hier mal mein Code..

Delphi-Quellcode:
[..]

  private
    procedure WorkProgress(Sender: TObject; AWorkMode: TWorkMode; const AWorkCount: Integer);

[..]
// TThread.Execute
 
  if (Download) then
    begin
      www:=TIdHttp.Create(nil);
      [url]www.OnWork:=WorkProgress;[/url]
      fs:=TFileStream.Create(DownloadDest+DownloadFile, fmCreate);
      try
        www.Get(DownloadPath+'/'+DownloadFile, fs);
      finally
        [url]www.Free;[/url]
      end;
      if Assigned(FParent.fOnFileComplete) then Synchronize(FParent.DoFileComplete);
    end;


procedure TThread.WorkProgress(Sender: TObject; AWorkMode: TWorkMode; const AWorkCount: Integer);
begin
  //Diese Box erscheint mehrmals (und ist nur ein Test)
  MessageBox(0, 'sad', 'sadsad', 0);
end;
Danke im Voraus!

MrKnogge 28. Mär 2008 16:34

Re: OnWork wird nach Download ausgeführt?
 
Nutzt du einen Proxy-Server ?
Ich hab zwar bisher noch nicht mit TIdHttp im zusammenhang mit Threads gearbeitet, hatte das Phänomen aber schon, wenn ich die Proxyfunktion von TIdHttp verwendet habe. (weis jetzt aber nicht, ob der Fehler bei den Indys oder am Proxy liegt)

TheMiller 28. Mär 2008 16:44

Re: OnWork wird nach Download ausgeführt?
 
Nein, ich nutze keinen Proxy-Server. Das kommt mir aber sehr seltsam vor. Warum sollte es NACH den Download ausgeführt werden? Die Ausführung an sich ist korrekt. Die Methode wird auch öfter mit steigenden AWorkCount-Werten aufgefufen. Nur halt eben nach dem Download!

MrKnogge 28. Mär 2008 16:54

Re: OnWork wird nach Download ausgeführt?
 
Wenn sie mehrmals aufgerufen wird ist doch alles korrekt!
Wann sollte sie denn deiner Meinung nach aufgerufen werden ?

TheMiller 28. Mär 2008 16:57

Re: OnWork wird nach Download ausgeführt?
 
WÄHREND dem Download sollte die Methode aufgerufen werden. Sie gibt nämlich die bereits geladenen Bytes wieder.

Bei mir wird sie NACH dem Download aufgerufen, also wenn die Datei schon auf dem Rechner ist...

MrKnogge 28. Mär 2008 17:00

Re: OnWork wird nach Download ausgeführt?
 
OK, ich hatte es so verstanden, dass die Datei noch nicht komplett auf dem Rechner ist.

TheMiller 28. Mär 2008 17:02

Re: OnWork wird nach Download ausgeführt?
 
Hm... und nu?

Christian Seehase 28. Mär 2008 17:40

Re: OnWork wird nach Download ausgeführt?
 
Moin DJ-SPM,

hast Du es bisher nur mit der MessageBox versucht?
Wenn ja, probier mal einfach den WorkCount in ein Label oder ähnliches zu schreiben, und lass die MessageBox weg.

TheMiller 28. Mär 2008 18:08

Re: OnWork wird nach Download ausgeführt?
 
Hallo!

Zeigt leider keine Veränderung!

Dani 28. Mär 2008 19:38

Re: OnWork wird nach Download ausgeführt?
 
Wie groß ist die Datei?


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:21 Uhr.
Seite 1 von 4  1 23     Letzte »    

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz