Autor Beitrag
Airtrox
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 109


Delphi 7
BeitragVerfasst: So 27.03.11 20:42 
Hallo,

ich habe jetzt wieder ein bisschen von dem EmbeddedWB gelernt, allerdings habe ich nun ein Problem:
Ich verbinde über einen Proxy auf eine Seite. Nun gibt es 2 Möglichkeiten:

1. Der Proxy ist in Ordnung. Die Funktion OnNavigateComplete wird aufgerufen.
2. Der Proxy weist die Verbindung ab. Die Funktion OnNavigateComplete wird erst aufgerufen, dann die Funktion OnNavigateError.

Mein Problem ist nun, dass ich nicht weiß wie ich feststellen kann, ob der Proxy nun funktioniert oder nicht. Ich will ihn nämlich (in jedem Fall) speichern (als (nicht) funktionierend). im Ereignis OnNavigateComplete kann ich das allerdings kann ich das aber nicht machen, da ich dort noch nicht weiß, ob der Proxy nicht doch einen Fehler ergeben hat.
Weiß jemand weiter?
Thom
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 70
Erhaltene Danke: 5


Delphi 10 Seattle Prof.
BeitragVerfasst: So 27.03.11 21:19 
Und was spricht dagegen, den Proxy auf OnNavigateError in der Liste als nicht funktionierend zu markieren? :gruebel:

Also Proxy - meinetwegen über ein TEdit - auswählen und in eine Liste übernehmen (zum Beispiel TStringList). Tritt kein OnNavigateError auf, ist alles OK - ansonsten wird der betreffende Eintrag in der Liste gekennzeichnet...
Airtrox Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 109


Delphi 7
BeitragVerfasst: So 27.03.11 21:53 
Das Problem wäre dann aber, dass ich die funktionierenden noch heraus filtern muss.

Ich habe 3 Memos, eines in welches in die Proxys eintrage, eines für alle "Guten" Proxys und eines für die nicht funktionierenden.
Als erstes wird OnNavigateComplete aufgerufen, ich weiß jedoch noch nicht ob der Proxy funktioniert oder nicht.
Danach wird ggf. OnNavigateError aufgerufen, so kann ich die kaputten Proxys in eines der anderen Memos übertragen und aus dem Listenmemo löschen.

Das Problem stellen die Proxys dar, die funktionieren. Nach OnNavigateError wird direkt ein neuer Proxy getestet, d.h. OnNavigateComplete wird wieder aufgerufen, mit einem anderen Proxy aus dem Listenmemo.
Thom
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 70
Erhaltene Danke: 5


Delphi 10 Seattle Prof.
BeitragVerfasst: So 27.03.11 22:32 
Wie wär's mit folgender Vorgehensweise:

Pseudocode (!!!): :wink:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
//...
  while Memo_Alle_Proxys.Lines.Count>0 do
  begin
    WebBrowser.Proxy:=Memo_Alle_Proxys.Lines[0];
    Memo_Gute_Proxys.Add(Memo_Alle_Proxys.Lines[0]);
    Memo_Alle_Proxys.Lines.Delete(0);
    WebBrowser.Navigate(Irgendwohin);
    Warte_Auf_OnNavigateComplete;
    Warte_Sicherheitshalber_Noch_Eine_Kleine_Weile_Auf_OnNavigateError;
  end;
//...
procedure TForm1.OnNavigateError(...);
begin
  Memo_Schlechte_Proxys.Lines.Add(Memo_Gute_Proxys.Lines[Letzter_Eintrag]);
  Memo_Gute_Proxys.Lines.Delete(Letzter_Eintrag);
end;

Für diesen Beitrag haben gedankt: Airtrox
Airtrox Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 109


Delphi 7
BeitragVerfasst: So 27.03.11 23:24 
Danke dir, damit hats geklappt :)
Thom
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 70
Erhaltene Danke: 5


Delphi 10 Seattle Prof.
BeitragVerfasst: So 27.03.11 23:39 
:D