1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76
|
procedure InitBrowser(const WebBrowser: TWebBrowser);
{$IFDEF WB_INTERFACED_BODY}
var
Doc: IHTMLDocument2;
EmptyBodyText: WideString;
EmptyBodyVarData: PSafeArray;
begin
try
// "Connexion" sur une Page Vierge
WebBrowser.Navigate('about:blank');
// Stockage du Document dans une Variable Temporaire
Doc := WebBrowser.Document as IHTMLDocument2;
// Texte d'un Corps Vierge
EmptyBodyText := '<html><body></body></html>';
// VarArrayOf([InnerHtm]) - On Obtient un Tableau de Variant d'un Seul Elément
// TVarData(...) - On Obtient la forme système d'un Variant
// TVarData(...).VArray - On Obtient les Données du Tableau sous la Forme d'un Pointeur de TVarArray (PVarArray)
// PSafeArray(...) - On Transtype le PVarArray en PSafeArray
EmptyBodyVarData := PSafeArray(TVarData(VarArrayOf([EmptyBodyText])).VArray);
Doc.Open('about:blank', '_self', '', True);
Doc.Write(EmptyBodyVarData);
Doc.Close();
except
Exit;
end;
end;
{$ELSE}
var
URL, Flags, Target, Post, Header : OleVariant;
begin
try
WebBrowser.Navigate('about:<html><head></head><body></body></html>', Flags, Target, Post, Header);
except
Exit;
end;
end;
{$ENDIF}
// -----------------------------------------------------------------------------
procedure WriteBrowserBody(const WebBrowser: TWebBrowser; const Body: WideString);
{$IFDEF WB_INTERFACED_BODY}
var
Doc : IHTMLDocument2;
InnerHtm: WideString;
begin
try
// Stockage du Document dans une Variable Temporaire
Doc := WebBrowser.Document as IHTMLDocument2;
// Texte d'un Corps et de son Contenu
InnerHtm := '<html><body>' + Body + '</body></html>';
// VarArrayOf([InnerHtm]) - On Obtient un Tableau de Variant d'un Seul Elément
// TVarData(...) - On Obtient la forme système d'un Variant
// TVarData(...).VArray - On Obtient les Données du Tableau sous la Forme d'un Pointeur de TVarArray (PVarArray)
// PSafeArray(...) - On Transtype le PVarArray en PSafeArray
Doc.Open('about:blank', '_self', '', True);
Doc.Write(PSafeArray(TVarData(VarArrayOf([InnerHtm])).VArray));
Doc.Close();
except
Exit;
end;
end;
{$ELSE}
begin
try
WebBrowser.OleObject.Document.Body.InnerHTML := Body;
except
Exit;
end;
end;
{$ENDIF} |
Partager