Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi onmouseover für TWebBrowser ? (https://www.delphipraxis.net/110030-onmouseover-fuer-twebbrowser.html)

FLINKER_FINGER 11. Mär 2008 22:17


onmouseover für TWebBrowser ?
 
hi
bräuchte ein OnMouseOver Ereignis und auch eins fürs verlassen. Leider gibt es das nicht von hause aus. Gibt es die Möglichkeit da ein wenig zu trixen das es doch irgendwie geht ?

Danke für jeden Tip =)

Klaus01 12. Mär 2008 02:07

Re: onmouseover für TWebBrowser ?
 
Guten Morgen,

lege Dir den TWebbrowser doch auf ein Panel.
Da solltest Su ein OnMouseOver haben.

Grüße
Klaus

toms 12. Mär 2008 05:33

Re: onmouseover für TWebBrowser ?
 
Zitat:

Zitat von Klaus01
Guten Morgen,

lege Dir den TWebbrowser doch auf ein Panel.
Da solltest Su ein OnMouseOver haben.

Grüße
Klaus


@Klaus: Das funktioniert aber nur, wenn der Panel sichtbar ist und nicht vollständig vom WB verdeckt wird.

@FLINKER_FINGER: Was genau hast du vor? Genügt dir evtl. auch ein Ereignis, wenn der
WB den Focus erhält. Dann schau mal hier.

FLINKER_FINGER 12. Mär 2008 16:42

Re: onmouseover für TWebBrowser ?
 
Danke schonmal für die schnellen Antworten =)

@Klaus:
Das mit dem Panel habe ich schon ausprobiert. Es gibt bei mir (D7) nur ein onMouseMove ereignis, das tut es zur Not auch. Ist aber sehr unschön. -_-

@toms:
Aus dem Quellcode werde ich nicht so richtig schlau... Mit Pointern bin ich leider nicht so fit.
Was ich gerade versuche: Habe viele kleine Webbrowser-Fenster. Die sind so klein, dass sie immer einen Scrollbalken haben. Diesen würde ich aber gern nur angezeigt bekommen, wenn die Maus über dem Fenster positioniert ist. Wenn sie das Fenster wieder verlässt sollen diese nicht mehr angezeigt werden, weil sie einfach stören.

bitsetter 12. Mär 2008 17:37

Re: onmouseover für TWebBrowser ?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi,

die Ereignisse musst du eben nachrüsten.
Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, OleCtrls, SHDocVw_TLB;

type
  TMoveEvent = procedure (Sender: TObject; X, Y: Integer) of object;
  TWebBrowser = class(SHDocVw_TLB.TWebBrowser)
  private
    { Private-Deklarationen }
    FOnMouseMove: TMoveEvent;
    FOnMouseLeave: TNotifyEvent;
    procedure WMMOUSEMOVE(var Message: TMessage); message WM_MOUSEMOVE;
    procedure CMMOUSELEAVE(var Message: TMessage); message CM_MOUSELEAVE;
  public
    property OnMouseMove: TMoveEvent read FOnMouseMove write FOnMouseMove;
    property OnMouseLeave: TNotifyEvent read FOnMouseLeave write FOnMouseLeave;
  end;

type
  TForm1 = class(TForm)
    WebBrowser1: TWebBrowser;
    procedure FormCreate(Sender: TObject);
  private
    procedure WMMOUSEMOVE(Sender: TObject; X, Y: Integer);
    procedure CMMOUSELEAVE(Sender: TObject);
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TWebBrowser.WMMOUSEMOVE(var Message: TMessage);
begin
  if assigned(FOnMouseMove) then
    FOnMouseMove(Self, Message.LParamLo, Message.LParamHi);
end;

procedure TWebBrowser.CMMOUSELEAVE(var Message: TMessage);
begin
  if assigned(FOnMouseLeave) then
    FOnMouseLeave(Self);
end;

procedure TForm1.WMMOUSEMOVE(Sender: TObject; X, Y: Integer);
begin
  Caption:= Format('WM_MOUSEMOVE X:%d Y:%d', [X, Y]);
end;

procedure TForm1.CMMOUSELEAVE(Sender: TObject);
begin
  Caption:= 'CM_MOUSELEAVE';
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  WebBrowser1.OnMouseMove:= WMMOUSEMOVE;
  WebBrowser1.OnMouseLeave:= CMMOUSELEAVE;
end;

end.
Getestet mit Delphi 6.

FLINKER_FINGER 12. Mär 2008 18:00

Re: onmouseover für TWebBrowser ?
 
hui, sieht sehr gut aus =)

nur leider bekomme ich die Fehlermeldung das ich die "SHDocVw_TLB.dcu" nicht habe...

toms 12. Mär 2008 18:02

Re: onmouseover für TWebBrowser ?
 
Zitat:

Zitat von FLINKER_FINGER
hui, sieht sehr gut aus =)

nur leider bekomme ich die Fehlermeldung das ich die "SHDocVw_TLB.dcu" nicht habe...

schreibe mal SHDocVw anstatt SHDocVw_TLB

FLINKER_FINGER 12. Mär 2008 18:04

Re: onmouseover für TWebBrowser ?
 
Ja das geht wunderbar !! ich habe zu danken !! :dp:


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:22 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz