Cześć.
Mam aplikację napisaną w Delphi.
Wykorzystuje komponenet TWebBrowser (czyli w praktyce systemowy IE). Elegancko wyświetla to co ma wyświetlać.
Dorzuciłem też okienko statusu. Czyli by w trakcie ładowania pojawiało się okienko z napisem ładuję, a po załadowaniu znikało. I ogólnie mówiąc działa, ale nie do końca jak trzeba. Kiedy klikam sobie na link, to łąduje stronę, pojawia się status, kończy ładować, status znika. Wszystko jest ok. Ale gdy wykonam jakieś operacje działające na na JavaScript (np rozwinięcie drzewka w menu), a nie przeładowujące całą stronę, status się pojawia, ale nie znika.
Kod wygląda tak:
procedure TForm1.WebBrowser1ProgressChange(Sender: TObject; Progress, ProgressMax: Integer);
begin
if( (Progress<ProgressMax) then
begin
if (widac<>True) then
begin
widac:=True;
PokazForme(Form4,True);
end;
end;
end;
procedure TForm1.WebBrowser1NavigateComplete2(Sender: TObject; const pDisp: IDispatch; var URL: OleVariant);
begin
if CurDispatch = nil then
CurDispatch := pDisp;
end;
procedure TForm1.WebBrowser1DocumentComplete(Sender: TObject; const pDisp: IDispatch; var URL: OleVariant);
begin
if (pDisp = CurDispatch) then
begin
PokazForme(Form4,False);
widac:=False;
CurDispatch := nil;
end;
end;
Zastanawiam się jak uwzględnić tą sytuację, gdy takie operacje JavaScriptem powodują zmianę Progress, ale nie dają w efekcie nic w Complete, bo tak to chyba wygląda.