AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Komponente unter der Maus erhalten

Komponente unter der Maus erhalten

Ein Thema von iaby · begonnen am 26. Okt 2003 · letzter Beitrag vom 31. Okt 2018
Antwort Antwort
Seite 1 von 2  1 2   
iaby

Registriert seit: 30. Nov 2002
Ort: BW
258 Beiträge
 
#1

Komponente unter der Maus erhalten

  Alt 26. Okt 2003, 15:21
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
  Mit Zitat antworten Zitat
Kamil

Registriert seit: 16. Aug 2002
178 Beiträge
 
#2

Re: Komponente unter der Maus erhalten

  Alt 26. Okt 2003, 16:23
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.
  Mit Zitat antworten Zitat
Benutzerbild von Mirilin
Mirilin

Registriert seit: 21. Dez 2002
Ort: Lenzburg
861 Beiträge
 
Delphi 6 Professional
 
#3

Re: Komponente unter der Maus erhalten

  Alt 26. Okt 2003, 16:25


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.
Tobias
Die Physik ist für die Physiker eigentlich viel zu schwer.
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Komponente unter der Maus erhalten

  Alt 26. Okt 2003, 16:36
getwindowfrompoint
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
iaby

Registriert seit: 30. Nov 2002
Ort: BW
258 Beiträge
 
#5

Re: Komponente unter der Maus erhalten

  Alt 26. Okt 2003, 17:02
dankeschön!!!
werde mir beide möglichkeiten mal anschauen!

gruss,
iaby
  Mit Zitat antworten Zitat
iaby

Registriert seit: 30. Nov 2002
Ort: BW
258 Beiträge
 
#6

Re: Komponente unter der Maus erhalten

  Alt 27. Okt 2003, 15:30
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
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.262 Beiträge
 
Delphi 2006 Professional
 
#7

Re: Komponente unter der Maus erhalten

  Alt 27. Okt 2003, 15:52
Moin iaby,

die Funktion heisste gemeinerweise WindowFromPoint, ohne Get davor...
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
iaby

Registriert seit: 30. Nov 2002
Ort: BW
258 Beiträge
 
#8

Re: Komponente unter der Maus erhalten

  Alt 28. Okt 2003, 08:06
Aber auch mit WindowFromPoint bekomme ich nicht die einzelnen komponenten!
da muss es doch eine funktion für geben! kennt die niemand?
  Mit Zitat antworten Zitat
Rhinolophus

Registriert seit: 11. Mär 2015
2 Beiträge
 
#9

AW: Komponente unter der Maus erhalten

  Alt 31. Okt 2018, 10:40
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
  Mit Zitat antworten Zitat
Benutzerbild von EWeiss
EWeiss

Registriert seit: 16. Okt 2010
6.486 Beiträge
 
Delphi 2010 Architect
 
#10

AW: Komponente unter der Maus erhalten

  Alt 31. Okt 2018, 10:42
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
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 18:23 Uhr.
Powered by vBulletin® Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2019 by Daniel R. Wolf