Einzelnen Beitrag anzeigen

Amateurprofi

Registriert seit: 17. Nov 2005
Ort: Hamburg
1.041 Beiträge
 
Delphi XE2 Professional
 
#11

AW: TComboBox - MouseMove

  Alt 12. Aug 2018, 10:00
Alternativ kannst Du natürlich auch Label1.Caption := buf; mit einer Funktion/Procedure ersetzen was Dir den Output vorbereitet und irgendwo hin sendet.

So umgehst Du zumindest die SubClass / CustomCombo etc Problematik.
Über der Zeile GetClassName(wnd, buf, SizeOf(buf)); könntest Du die Abfrage auch noch vertiefen/konkretisieren (wnd := WindowFromPoint(pt); mit einem bestimmten Control Handle einer ComboBox zum Beispiel), in dieser gezeigten Variante greift ApplicationIdle auf alle aufgeklappten ComboBox Listen Einträge zu und gibt Inhalt unter Maus weiter.

Ps: Da ich es über OnIdle Event laufen lasse, kann es passieren das wenn Deine Applikation gerade schwer am schuften ist Du kein Event gefeuert bekommst um das Item unter Maus auszuwerten.
Nee, KodeZwerg.
Anfangs dachte ich auch, dass es Konflikte geben könnte, wenn mehrere Comboboxen vorhanden sind.
Hab ich dann auch getestet.
Es scheint so zu sein, dass immer nur eine einzige Combobox aufgeklappt sein kann, selbst dann, wenn es sich um Comboboxen in verschiedenen Anwendungen handelt. Jedenfalls habe ich es nicht geschafft, so einen Konflikt zu produzieren.

Zum PS:
Bei mir läuft "ApplicationIdle" nur dann, wenn die Liste aufgeklappt ist, und dann läuft ja nichts anderes.
Gruß, Klaus
Die Titanic wurde von Profis gebaut,
die Arche Noah von einem Amateur.
... Und dieser Beitrag vom Amateurprofi....
  Mit Zitat antworten Zitat