Einzelnen Beitrag anzeigen

Benutzerbild von sx2008
sx2008

Registriert seit: 15. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#6

AW: TWebBrowser - zwei Formulare nacheinander ausfüllen

  Alt 3. Nov 2012, 14:15
Auf alle Fälle würde ich kein Sleep nehmen.
Doch, genau das ist nötig.
Sleep gibt die Kontrolle an andere Prozesse ab, was ja genau das ist was während des Wartens auf den Internet Explorer gebraucht wird.
Ohne Sleep würde die eigene Anwendung bis zu 100% Prozent (50% bei Dual-Core) an Rechenleistung unnötigerweise verbrauchen.
Wer's nicht glaubt und selber testen möchte:
* neues Projekt anlegen
* neuen Button auf's Formular
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
   while not Application.Terminated do
      Application.ProcessMessages;
end;
Der Nachteil von sleep(50) ist, dass die Reaktionszeit auf Mausklicks, Tastendrücke um bis zu 50ms verzögert wird, aber diese Verzögerung ist so kurz, dass sie nicht zu spüren ist.
Des weiteren könnte der Webbrowser schon fertig geladen haben aber die eigene Anwendung bekommt dies erst nach 50ms mit.
Auch das ist kein Beinbruch; im Gegenteil, wenn die Webseite komplett geladen ist sollte man dem Browser besser noch etwas Zeit geben eventuelle Java-Scripts abzuarbeiten.
  Mit Zitat antworten Zitat