Entwickler-Ecke

Internet / Netzwerk - WebBrowser navigiert nicht


JustusJonas - Mi 27.08.03 09:02
Titel: WebBrowser navigiert nicht
Hallo Leute,

ich habe folgendes Problem:

Ich habe einen TWebBrowser in meiner Form. In dem Ereignis OnCreate der Form habe ich folgendes stehen:


Delphi-Quelltext
1:
2:
WebBrowser1.Navigate('http://www.hallo.de');
KeyPreview:=True;

und im OnKeyDown meiner Form steht folgendes:

Delphi-Quelltext
1:
2:
3:
4:
if Key = VK_Space then
   begin
        WebBrowser1.Navigate('http://www.hallo2.de');
   end;

Wenn ich nun Space drücke, ohne dass ich vorher in den WebBrowser geklickt habe, funktioniert das Navigieren auf die andere Seite super. Aber wenn ich irgendeinen Link in der angezeigten Seite klicke passiert gar nichts mehr, wenn ich Space drücke.
Ich denke es hat was mit KeyPreview zu tun, aber das steht ja auf True!?!?

Kann mir jemand weiterhelfen?

Greetz


Anonymous - Mi 27.08.03 18:50

Das prob hatte ich auch schon ;) Wenn der Cursor im Webbrowser ist reagiert das Form-Ereigniss nicht


JustusJonas - Do 28.08.03 09:08

hmmm....kennt jemand eine Lösung für dieses Problem??

Greetz


kasi - Do 28.08.03 16:17

Application.onMessage Handler schreiben.

etwa so

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
  private
    { Private-Deklarationen }
    procedure DoMessage(var Msg: TMsg; var Handled: Boolean);

....

procedure TForm1.FormCreate(Sender: TObject);
begin
Application.OnMessage := DoMessage;
end;

procedure TForm1.DoMessage(var Msg: TMsg; var Handled: Boolean);
begin
if Msg.message = WM_KEYDOWN then
  begin
  if Msg.wParam = VK_Space then
    begin 
        WebBrowser1.Navigate('http://www.hallo2.de'); 
        Handled := true;
    end;
  end;
end;



KASI


JustusJonas - Do 28.08.03 16:37

Wow es funktioniert!

Vielen lieben Dank!

Greetz