Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Komponente unter der Maus erhalten (https://www.delphipraxis.net/10845-komponente-unter-der-maus-erhalten.html)

iaby 26. Okt 2003 15:21


Komponente unter der Maus erhalten
 
Hallo zusammen,

ich glaube das gabs schonmal, habs aber mit der suchfunktion nicht gefunden!
wie kann ich die art der komponente (z.B. TImage, TEdit, TForm, ...) bekommen, die sich gerade
unter dem mauszeiger befindet? es würde ja auch eine function gehen, der ich zwei koordinaten
übergeben muss und die mir dann die komponente zurück liefert!
kennt da jemand was?

gruss,
iaby

Kamil 26. Okt 2003 16:23

Re: Komponente unter der Maus erhalten
 
Aus der Delphi Hilfe:
Zitat:

Returns the windowed control, if any, at the specified location.

Unit

Controls

Category

mouse handling utilities

function FindVCLWindow(const Pos: TPoint): TWinControl;

Description

Call FindVCLWindow to locate the windowed control under a certain point. For example, use FindVCLWindow to identify the windowed control that is under the mouse from another control that has captured the mouse. The Pos parameter specifies the location that must be over the returned windowed control. If there is no windowed control under the Pos parameter, FindVCLWindow returns nil.

Mirilin 26. Okt 2003 16:25

Re: Komponente unter der Maus erhalten
 
:hi:

Delphi-Quellcode:
FindVCLWindow
EDH :
Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
var
  p : TPoint;
  wc : TWinControl;
begin
  GetCursorPos(p);

  if (P.x>Left) and (P.x<Left+Width) and
     (P.Y>Top) and (P.Y<Top+Height) then
  begin
    wc:=FindVCLWindow(p);

    if wc<>nil then
      Label1.Caption :=TObject(wc).ClassName
    Else
      Label1.Caption :='unbekannt';
  end;
end;

[Edit]
Noch auf Deutsch :
Mit FindVCLWindow können Sie das fensterorientierte Steuerelement, das sich an einer bestimmten Position befindet, ermitteln. Beispielsweise läßt sich mit FindVCLWindow das fensterorientierte Steuerelement ermitteln, auf dem sich der Mauszeiger befindet, wenn ein anderes Steuerelement aktuell alle Mausbotschaften abfängt. Der Parameter Pos bezeichnet die Position, innerhalb derer sich das zurückgegebene Steuerelement befinden muß. Wenn sich an dieser Stelle kein fensterorientiertes Steuerelement befindet, liefert FindVCLWindow den Wert nil zurück.

SirThornberry 26. Okt 2003 16:36

Re: Komponente unter der Maus erhalten
 
getwindowfrompoint

iaby 26. Okt 2003 17:02

Re: Komponente unter der Maus erhalten
 
dankeschön!!!
werde mir beide möglichkeiten mal anschauen!

gruss,
iaby

iaby 27. Okt 2003 15:30

Re: Komponente unter der Maus erhalten
 
mit findvclwindow bekomme ich aber nur die Form (Form1)!
ich will aber auch Tedit oder TButton und so bekommen!
da muss es doch auch was geben!

zu getwindowfrompoint:
die funktion findet er nicht und ist auch nicht in der hilfe
dokumentiert! in welcher unit versteckt die sich denn ;-) ?

gruss,
iaby

Christian Seehase 27. Okt 2003 15:52

Re: Komponente unter der Maus erhalten
 
Moin iaby,

die Funktion heisste gemeinerweise WindowFromPoint, ohne Get davor...

iaby 28. Okt 2003 08:06

Re: Komponente unter der Maus erhalten
 
Aber auch mit WindowFromPoint bekomme ich nicht die einzelnen komponenten!
da muss es doch eine funktion für geben! kennt die niemand?

Rhinolophus 31. Okt 2018 10:40

AW: Komponente unter der Maus erhalten
 
Wenn du den Namen suchst, muss den den Namen erfragen.
Erweitere im Timer (oben) das Label um den Namen der Komponente wie folgt:

if wc<>nil then
Label1.Caption :=TObject(wc).ClassName + ' ' + wc.Name

EWeiss 31. Okt 2018 10:42

AW: Komponente unter der Maus erhalten
 
Wen interessiert ein 15 Jahre altes Thema noch warum gräbst du das aus und glaubst das den User das noch interessieren könnte.

gruss


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:27 Uhr.
Seite 1 von 2  1 2      

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