Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Maus auf Komponente? (https://www.delphipraxis.net/66629-maus-auf-komponente.html)

MCXSC 1. Apr 2006 17:04


Maus auf Komponente?
 
Hallo,

wie kann ich feststellen ob und auf welcher Komponente (z.B. ComboBox) sich die Maus befindet?

MCXSC

inherited 1. Apr 2006 17:07

Re: Maus auf Komponente?
 
Machs doch einfach mir der OnMouseMove-Procedure der einzelnen Kompos

MCXSC 1. Apr 2006 17:15

Re: Maus auf Komponente?
 
Ja, bei buttons z.B. gehts auch, aber eine ComboBox z.B. hat kein MouseMove-Ereignis...

inherited 1. Apr 2006 17:21

Re: Maus auf Komponente?
 
Das nicht, aber etwas viel besseres, das OnMouseEnter, bzw das OnMouseLeave ereignis

Sharky 1. Apr 2006 17:34

Re: Maus auf Komponente?
 
Zitat:

Zitat von inherited
Machs doch einfach mir der OnMouseMove-Procedure der einzelnen Kompos

Das können dann ja "hundert" von Methoden werden. ;-)

Lieber die Messages CM_MOUSEENTER und CM_MOUSELEAVE global auswerten.
Delphi-Quellcode:
  private
    { Private-Deklarationen }
    ControlOnMousePos: TControl;
    procedure CMMouseEnter(var Message: TMessage); message CM_MOUSEENTER;
    procedure CMMouseLeave(var Message: TMessage); message CM_MOUSELEAVE;
  public
    { Public-Deklarationen }
  end;

var
  DemoForm: TDemoForm;

implementation

{$R *.dfm}

procedure TDemoForm.CMMouseEnter(var Message: TMessage);
var
  ptWork: TPoint;
begin
  GetCursorPos(ptWork);
  ControlOnMousePos := FindDragTarget(ptWork, TRUE);
  if Assigned(ControlOnMousePos) then
  begin
    Label1.Caption := ControlOnMousePos.Name;
  end;
end;

procedure TDemoForm.CMMouseLeave(var Message: TMessage);
begin
  ControlOnMousePos := NIL;
end;

inherited 1. Apr 2006 19:04

Re: Maus auf Komponente?
 
jaaa ok, aber wenn man nurn paar kompos hat, is es kürzer das anders zu lösen

SirThornberry 1. Apr 2006 19:09

Re: Maus auf Komponente?
 
Nehmt doch einfach die Funktion ControlAtPos oder wenn lange weile herrscht das ganze selbst schreiben in dem man die WinControls rekursiv durchgeht.


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

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