![]() |
Buttonbeschriftungen auflisten
Hallo,
hat jemand eine Idee, wie man Buttonbeschriftungen, über denen sich der Cursor befindet auflisten kann? |
Re: Buttonbeschriftungen auflisten
mit WindowFromPoint einfach das Handle des darunterliegenden Controls holen und dann GetClassName aufrufen um zu prüfen ob es ein button ist. Wenn es ein Button ist mit GetWindowText die Caption holen (oder mit SendMessage und wm_getText)
|
Re: Buttonbeschriftungen auflisten
Hi,
meinst du so etwas?
Delphi-Quellcode:
Edit: Mist, merke gerade, dass er das in "Windows API" gepostet hat - Dann musst du SirT's Tipp befolgen...
// Edit:
uses TypInfo; function GetCaptionAtCursor: String; var Pos : TPoint; Ctrl: TWinControl; begin GetCursorPos(Pos); Ctrl := FindVCLWindow(Pos); if (Ctrl <> nil) and (IsPublishedProp(Ctrl, 'Caption')) then Result := GetStrProp(Ctrl, 'Caption') else Result := ''; end; mfG mirage228 |
Re: Buttonbeschriftungen auflisten
@mirage228: funktioniert das nur innerhalb der eigenen Anwendung? Ich denk schon da über Processgrenzen sonst schlecht alle Properties abgefragt werden können.
|
Re: Buttonbeschriftungen auflisten
Zitat:
mfG mirage228 |
Re: Buttonbeschriftungen auflisten
Das sollte global funktionieren (aus vorhandenen sourcen zusammengesucht und ungetestet)
Delphi-Quellcode:
Bei diesem Beispiel fehlt noch die Prüfung auf den Klassennamen wenn man nur auf Buttons reagieren möchte.
var text: PChar;
tmpint: Integer; CursorPos: TPoint; Lhwnd: Cardinal; begin GetCursorPos(CursorPos); Lhwnd := WindowFromPoint(CursorPos); tmpint := SendMessage(Lhwnd, WM_GETTEXTLENGTH, 0, 0) + 1; getmem(text, tmpint); SendMessage(Lhwnd, WM_GETTEXT, tmpint, Integer(Text)); Edit1.Text := String(text); freemem(text); Diesen erhält man ganze einfach so:
Delphi-Quellcode:
var Classenname: Array[0..255] of Char;
begin GetClassName(LHwnd, Classenname, 255); Edit2.Text := String(Classenname); |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:01 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