Einzelnen Beitrag anzeigen

marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#50

Re: Datei bearbeiten und nur Teile wieder speichern

  Alt 5. Mär 2008, 22:20
Beim Event OnDocumentComplete() möchtest du eigentlich nur SaveBody() ausführen, eventuell noch irgendwelche Steuerungsfunktionen, aber gewiss nicht Navigate(). Es ist auch kein guter Stil, wenn du Button1.Click ausführst - unabhängig vom Katastrophenfaktor.

Eine Weiterschaltung auf einen anderen URL findet in deinem Code nicht statt, aber das weißt du?

Mehrerer Seiten hintereinander kannst du auch so abholen:

Delphi-Quellcode:
const
  NAV_TIMEOUT = 5000; // milliseconds

var
  Links: TStrings;

procedure Timeout(const url: string);
begin
  ShowMessage('timeout: ' + url);
end;

function WaitForDocumentComplete(wb: TWebBrowser; timeout: Word): Boolean;
var
  ticks: Cardinal;
begin
  ticks := GetTickCount;
  repeat
    Application.ProcessMessages;
  until (wb.ReadyState = READYSTATE_COMPLETE)
  or (GetTickCount - ticks > timeout);
  Result := wb.ReadyState = READYSTATE_COMPLETE;
end;

begin
  for i := 0 to Pred(Links.Count) do
  begin
    WebBrowser.Navigate(Links[i]);
    if WaitForDocumentComplete(WebBrowser, NAV_TIMEOUT)
      then SaveBody
      else Timeout(Links[i]);
  end;
end;
Getippt und nicht getestet.

Gute Nacht.
  Mit Zitat antworten Zitat