Mit dem "Assigned" ist ja völliger Quatsch. Wenn das Fenster vom IE geschlossen wird, dann knallt es.
Also hier mal ein anderes Beispiel. Es wird vorher geprüft, ob die Instanz vom IE noch vorhanden ist.
Wenn ja, wird ein Refresh durchgeführt. Ansonsten wird eine neue Instanz erstellt.
Delphi-Quellcode:
{...}
uses
ShDocVw, MSHTML;
{...}
var
IE: IWebBrowser2;
{...}
procedure TForm1.Button5Click(Sender: TObject);
var
I: Integer;
SHW: IShellWindows;
Doc: IHTMLDocument2;
MustNewCreate: Boolean;
URL: OleVariant;
begin
URL := '
http://www.heise.de/newsticker/';
MustNewCreate := True;
SHW := CoShellWindows.Create;
for I := 0
to SHW.Count - 1
do
if (SHW.Item(I)
as IWebBrowser2) = IE
then
begin
if IE.Document <>
nil then
if IE.Document.QueryInterface(IHTMLDocument2, Doc) = S_OK
then
if IE.LocationURL =
URL then
IE.Refresh
else
IE.Navigate(
URL, EmptyParam, EmptyParam, EmptyParam, EmptyParam);
MustNewCreate := False;
end;
if MustNewCreate
then
begin
IE := CoInternetExplorer.Create;
IE.Navigate(
URL, EmptyParam, EmptyParam, EmptyParam, EmptyParam);;
IE.Visible := True;
end;
end;
Könnte mir vorstellen, das sowas ähnliches mit Mozilla auch möglich wäre. Denke aber, das es eine Steuerung über
Ole/
DDE mit Chrome und Opera nicht gibt.