AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

TComboBox - MouseMove

Ein Thema von Amateurprofi · begonnen am 8. Aug 2018 · letzter Beitrag vom 12. Aug 2018
Antwort Antwort
Seite 2 von 2     12
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
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.685 Beiträge
 
Delphi 11 Alexandria
 
#12

AW: TComboBox - MouseMove

  Alt 12. Aug 2018, 11:43
vielen Dank.
Nach ein paar Anlaufschwierigkeiten funktioniert das hervorragend.
Gern geschehen und gut das Du es für Deine Zwecke anpassen konntest.
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.
Ich meinte mit meiner "gezielten" Abfrage keinen Konflikt sondern nur bestimmte ComboBoxen auszuwerten, vielleicht will man nur eine bestimmte auf diese Weise "abarbeiten" lassen und andere sollen stumm bleiben.

Das Du das OnIdle Event an und ausschaltest ist auch völlig in Ordnung wobei mir EraseHint; nicht bekannt ist.
Den Befehl buf[0] := #0; würde ich Dir raten wieder aufzunehmen.

Wie dem auch sei, Du hast es geschafft Deine Ziele zu erreichen, warum bei Deinem Delphi der DropDownCount anders arbeitet als wie bei mir ist auch ein Rätsel. Letztendlich klappt ja alles
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Amateurprofi

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

AW: TComboBox - MouseMove

  Alt 12. Aug 2018, 12:49
Zitat:
Den Befehl buf[0] := #0; würde ich Dir raten wieder aufzunehmen.
Wie de
Was soll das bringen?
Bei dem von Dir vorgeschlagenen Code macht es (wahrscheinlich) Sinn, denn wenn "GetClassName" nichts in den Puffer schreibt wird StrIComp(Buf,'ComboLBox') nicht = 0 sein.
Ich gehe lieber den Weg, das Resultat von "GetClassName" zu prüfen (dafür ist es da).
Die einzige Argumentation, trotzdem vor dem "GetClassName" Buf[0]=#0 zu setzen, ist die Annahme, das "GetClassName" nicht korrekt arbeitet. Wenn ich aber annehme, dass GetClassName nicht korrekt arbeitet, dann sollte ich auch annehmen, dass zum Beispiel "StrIComp" fehlerhaft arbeitet.
Gruß, Klaus
Die Titanic wurde von Profis gebaut,
die Arche Noah von einem Amateur.
... Und dieser Beitrag vom Amateurprofi....
  Mit Zitat antworten Zitat
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 22:07 Uhr.
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