Witam,
Ładuję sobie do TWebBrowser kod html z bazy danyc za pomocą procedurek znalezionych gdzieś w necie. Wyglądają one następująco:
procedure Tform1.LoadDocFromString(WB: TWebBrowser; const HTMLString: string);
var
v: OleVariant;
HTMLDocument: IHTMLDocument2;
begin
CheckDocReady(WB);
HTMLDocument := WB.Document as IHTMLDocument2;
v := VarArrayCreate([0, 0], varVariant);
v[0] := HTMLString;
HTMLDocument.Write(PSafeArray(TVarData(v).VArray));
HTMLDocument.Close;
end;
procedure Tform1.LoadBlankDoc(WB: TWebBrowser);
begin
WB.Navigate('about:blank', EmptyParam, EmptyParam, EmptyParam, EmptyParam);
while WB.ReadyState <> READYSTATE_COMPLETE do
begin
Application.ProcessMessages;
Sleep(0);
end;
end;
procedure Tform1.CheckDocReady(WB: TWebBrowser);
begin
if not Assigned(WB.Document) then
LoadBlankDoc(WB);
end;
I wszystko to śmiga fajnie oprócz jednej rzeczy. Otoż danę ładuję w następujący sposób
LoadDocFromString(WebBrowser2,'<body style="margin:0px; background-color:#E3E0DB;">
podczas TDataSetAfterScroll, który to dataset nawiguję za pomocą TDBGrid1.
I teraz pojawia się problem. Gdy już sobie zaczytam tekst do Twebbrowser i kliknę w ten komponent to wówczas bezpośrednio po klikaniu w TWebBrowser nie mogę kliknąć w DBGrid1. Tzn. sprawia on wrażenie jakby miał Enabled:=False;, ale przecież nie ma.
Dopiero kliknięcie w inny dowolny komponent na formie powoduje odblokowanie DBGrid1.
Czy ktoś wię z czym może być związany ten problem? Dodam, że na końcu mam dodane:
initialization
OleInitialize(nil);
finalization
OleUninitialize;