AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi onmouseover für TWebBrowser ?
Thema durchsuchen
Ansicht
Themen-Optionen

onmouseover für TWebBrowser ?

Ein Thema von FLINKER_FINGER · begonnen am 11. Mär 2008 · letzter Beitrag vom 12. Mär 2008
Antwort Antwort
FLINKER_FINGER

Registriert seit: 29. Apr 2004
Ort: Berlin
131 Beiträge
 
#1

onmouseover für TWebBrowser ?

  Alt 11. Mär 2008, 23:17
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 =)
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.771 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: onmouseover für TWebBrowser ?

  Alt 12. Mär 2008, 03:07
Guten Morgen,

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

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#3

Re: onmouseover für TWebBrowser ?

  Alt 12. Mär 2008, 06:33
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.
Thomas
  Mit Zitat antworten Zitat
FLINKER_FINGER

Registriert seit: 29. Apr 2004
Ort: Berlin
131 Beiträge
 
#4

Re: onmouseover für TWebBrowser ?

  Alt 12. Mär 2008, 17:42
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.
  Mit Zitat antworten Zitat
Benutzerbild von bitsetter
bitsetter

Registriert seit: 17. Jan 2007
1.169 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: onmouseover für TWebBrowser ?

  Alt 12. Mär 2008, 18:37
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.
Angehängte Dateien
Dateityp: zip webbrowser_916.zip (216,3 KB, 20x aufgerufen)
Gruß bitsetter
"Viele Wege führen nach Rom"
Wolfgang Mocker (geb. 1954), dt. Satiriker und Aphoristiker
  Mit Zitat antworten Zitat
FLINKER_FINGER

Registriert seit: 29. Apr 2004
Ort: Berlin
131 Beiträge
 
#6

Re: onmouseover für TWebBrowser ?

  Alt 12. Mär 2008, 19:00
hui, sieht sehr gut aus =)

nur leider bekomme ich die Fehlermeldung das ich die "SHDocVw_TLB.dcu" nicht habe...
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#7

Re: onmouseover für TWebBrowser ?

  Alt 12. Mär 2008, 19:02
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
Thomas
  Mit Zitat antworten Zitat
FLINKER_FINGER

Registriert seit: 29. Apr 2004
Ort: Berlin
131 Beiträge
 
#8

Re: onmouseover für TWebBrowser ?

  Alt 12. Mär 2008, 19:04
Ja das geht wunderbar !! ich habe zu danken !!
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:45 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