Hallo,
ich habe ein kleines Programm für Sehbehinderte geschrieben,
mit dem man den IE bedienen kann. Bei neu erzäugten Oleobjekten
funktioniert alles wunderbar, aber wenn ein IE - Fenster schon
vor meinem Programm offen war bzw. nicht durch mein Programm
geöffnet wurde, dann gibt es eine
exception ... ist ja auch klar,
da die OLEVariant (bei mir IEApp) ja noch gar keinen Inhalt hat
und es dann bei EApp.Navigate(Edit1.text) zwangsläufig zu einem
Fehler kommen muss.
Nun meine Frage: Es muss doch irgendwie möglich sein meiner
OLEVariant - Variablen den Wert eines schon exestierenden Fensters
zuzuweisen, oder liege ich da föllig falsch?!
Also meine Prozedure, zur Navigation sieht vollgendermaßen aus:
Delphi-Quellcode:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
VAR
WinHanlde : HWnd;
begin
IF key = #13 THEN
BEGIN
if( VarIsEmpty( IEApp ) )then
begin
WinHanlde := FindWIndow( 'IEFrame', nil );
if( 0 <> WinHanlde )then
BEGIN
//IEApp muss existierender Brwoser werden.
//IEApp.Navigate(Edit1.text);
END ELSE
nav;
end else
begin
WinHanlde := FindWIndow( 'IEFrame', nil );
if( 0 <> WinHanlde )then
begin
IEapp.Navigate(Edit1.text);
SetForegroundWindow( WinHanlde );
end else
begin
nav;
end;
end;
END;
end;
Procedure Tform1.nav;
BEGIN
IEApp := CreateOLEObject('InternetExplorer.Application');
IEApp.Visible := True;
IEApp.Top := 0;
IEApp.Left := 0;
IEApp.Width := Screen.Width;
IEApp.Height := Screen.Height;
IEApp.Navigate(Edit1.text);
END;
Also ich würe mich wie immer, über einen Tip freuen.
MFG
Evian
[edit=Daniel B]Delphi-Tags korrigiert. Mfg, Daniel B[/edit]