[Delphi] sposób na WebBrowser o onDocumentComplete

0

Witam
Pisze program który ma logowac sie na sronę banku, sprawdzić stan konta i wylogowac się.
Logowanie do mojego banku sklada sie z dwóch stron na ktorych wpisuje kody, trzecia strona to ta z której odczytuje stan konta. Na początku uzywałem do kazdej strony jednego buttona aby sprawdzac czy wszystko idzie ok ( WebBrowser ). Teraz chcĘ wszystko wcisnąć pod jeden button i mam maly problem bo musze poczekać aż dana strona się zaladuje i wykonać jakieś tam operacje i znowu czekać na nastepną strone.
Poradziłem sobie z tym tak : w zdarzeniu onDocumentComplete wywoluje procedure wczytana

procedure TForm1.WebBrowser1DocumentComplete(Sender: TObject;
  const pDisp: IDispatch; var URL: OleVariant);
begin
  wczytana;
end;

Procedura wczytana wyglada tak :

procedure TForm1.wczytana;
begin
  case nr of
   1 : Button2Click(self);
   2 : Button3Click(self);
   3 : Button4Click(self);
   4 : Button6Click(self);
  end;
end;

i teraz Naciskam button 1

procedure TForm1.Button1Click(Sender: TObject);
begin
  AIB := TAIB.Create;
  AIB.opensite(@WebBrowser1);
  nr := 1;
end;

stronka się wczytuje, zdarzenie onDocumentComplete wywoluje procedure wczytana ktora wywoluje Button2Click, button2click ustawia nr:=2; i znowu strona sie wczytuje i tak az do konca.
Wiec z tego wynika że na ile stron chcĘ poczekać tyle procedurek musze napisać :/

I tu moje pytanie czy nie da się tego zrobić jakoś tak ??
<pseldokod>
openSite('http://.......');
czekaj_az_sie_otworzy;
wykonaj_operacje;
open_site (inna_strona);
czekaj_az_sie_otworzy;

od razu znaczam że nie chcĘ czekać jakiegoś czasu np Sleep(10000); tylko poczekać na zdarzenie OnDocumentComplet. Czy to jest mozliwe ???

I jeszcze jedno czy zamiast na koncu kazdej procedury ktora powinna poczekac zamiast uzywac zmiennej globalnej tu nr da sie to zrobic jakos tak WebBrowser.onDocumentComplete:=Button2Click ?
pozbyłbym sie w ten sposób procedury wczytana; i jednej zmiennej globalnej.

Ma ktoś może jakiś ciekawy sposób na WebBrowsera ?
Sorry jeśli to nie trzyma się kupy ale już za długo przy tym siedze chyba potrzebuje snu :P

0

odświeżam ponieważ poszukuje odpowiedzi na to samo pytanie

0

Witam wiem, że temat jest bardzo bardzo stary, lecz też poszukuje rozwiązania i nie moge znaleŹĆ, zna ktos?

0

Wystarczy obudować WebBrowser albo użyć czegoś lepszego np. EmbeddedWB który ma procedurę Wait (czy coś takiego) w każdym razie czeka na załadowanie strony.

0

Albo użyć Indy/Synapse...

0

Jak mam użyć indy/synpase skoro musze wywołać funkcje javascript...

0

", po wczytaniu strony ładujesz kolejny"

tylko jak sprawdzić czy jest wczytana?

16 maj, nitro cee budzi się rano o 7:30 i nie myslał o programowaniu i wpadłu mu pomysł. Gdy dokument jest complet zmienna typu boolean zmienia sie na true
Gdy jest na true to pętla wykonuje polecenie i zmienia ją na falshe, gdy dokument bedzie complet znowu na true się zmieni i tak w kółko, takie proste a dopiero teraz na to wpadłem :P Dzięki za próby pomocy.

1 użytkowników online, w tym zalogowanych: 0, gości: 1