Einzelnen Beitrag anzeigen

Benutzerbild von sx2008
sx2008

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

AW: Eine Procedure durch Stop Button unterbrechen

  Alt 25. Feb 2012, 13:55
Du darfst die Schleife von 1 bis 1000 nicht einfach so übernehmen; das war nur ein Beispiel.
Du musst in deinem Code immer wieder die Funktion IsRunning aufrufen.
Wenn du das zu oft tust, wird der Ablauf langsamer als nötig.
Zu selten und die Reaktion auf Stop ist verzögert.
Ein gesundes Mittelmaß ist nötig.
Delphi-Quellcode:
var ovElements: OleVariant; i: Integer;
begin
ovElements := WebBrowser1.OleObject.Document.forms.item(0).elements;
    for i := 0 to (ovElements.Length - 1) do
         if (ovElements.item(i).tagName = 'INPUT') and
               (ovElements.item(i).type = 'submit') and
                 (ovElements.item(i).Value = 'Filter löschen') then
                 begin
                   if not IsRunning then Exit; //***
                   ovElements.item(i).Click;
                 end;
for i:=1 to 9 do
begin
  if not IsRunning then Exit; //***
  delay(100);
end;
ovElements := WebBrowser1.OleObject.Document.forms.item(0).elements;
    for i := 0 to (ovElements.Length - 1) do
         if (ovElements.item(i).tagName = 'INPUT') and
               (ovElements.item(i).type = 'submit') and
                 (ovElements.item(i).Value = 'Filter löschen') then
                   ovElements.item(i).Click;
for i:=1 to 9 do
begin
  if not IsRunning then Exit; //***
  delay(100);
end;
ovElements := WebBrowser1.OleObject.Document.forms.item(0).elements;
    for i := 0 to (ovElements.Length - 1) do
         if (ovElements.item(i).tagName = 'INPUT') and
               (ovElements.item(i).type = 'submit') and
                 (ovElements.item(i).Value = 'Filter löschen') then
                   ovElements.item(i).Click;

end;
  Mit Zitat antworten Zitat