Einzelnen Beitrag anzeigen

Amateurprofi

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

AW: TComboBox - MouseMove

  Alt 9. Aug 2018, 17:59
Hallo Amateurprofi,

Ich hab dann mal spaßeshalber im Form.Create ein SendMessage(ComboBox.Handle, CB_SetMinVisible, 10, 0); eingefügt und siehe da, das funktioniert.
Ist ja nicht weiter schlimm, Du hast meinen Vorschlag halt nicht korrekt umgesetzt, als Methode der Klasse. Ja auf das SendMessage() läuft es hinaus, Hauptsache Du rufst es an geeigneter Stelle auf, Form.Create mag ich pers. nicht für so etwas, aber nach einer Listenfüllung um es dynamisch anzupassen.
Und zum Thema MouseMove hab ich mir mal angeschaut was unter dem von dir gezeigten Link zu finden ist.
Ja mit den Mouse Events würde ich halt über das Hint-Event gehen, darüber kannst Du Dir ausrechnen lassen wo die Maus gerade steckt, ich habe in Post #1 nicht so ganz verstanden worauf Du da genau aus bist, das Hint-Ereignis ermöglicht Dir halt ein Item aus der ComboBox nur anhand der Mausposition zu bestimmen.
Nee, deinen Vorschlag habe ich nicht umgesetzt, weil es mir nicht zielführend erschien.
Dir von dir gezeigte Methode "TCustomCombo.SetDropDownCount(const Value: Integer);" ist bereits Bestandteil von TCustomCombo und TComboBox ist ein Nachfahre von TCustomCombo.
Was also soll das bringen?
Ich hab mittlerweile auch geprüft, ob TCustomCombo.SetDropDownCount auch aufgerufen wird, wenn DropDownCount gesetzt wird.
Wird sie, aber das "SendMessage" wird nicht ausgeführt (wg. StyleServices).

Und was ich genau will?
In meinen Programmen ist es Standard, dass am unteren Rand der Form eine Statusbar ist und darüber ist ein freier Bereich, in dem ich zur Laufzeit Hinweise ausgebe. (Schau mal hier https://www.delphipraxis.net/134885-rechenprogramm.html).

Die Combobox, listet einige Musik-Titel auf und zeigt nicht nur die Titel sondern auch diverse Informationen zu dem jeweiligen Titel (siehe Anhang "Combobox aufgeklappt").
Ich möchte, wenn ich die Maus über die aufgeklappte Liste bewege, im oben erwähnten Hinweis-Feld ausgeben, wofür der Wert steht, auf den die Maus zeigt (siehe Anhang "Combobox zugeklappt").
Das ist aber vergebliche Mühe, wenn die Liste bis zum unteren Rand der Form reicht.
Deshalb will ich die Höhe der aufgeklappten Liste begrenzen, so dass das Hinweis-Feld frei bleibt.
Klar könnte ich den Hinweis auch direkt beim Cursor einblenden - ich will aber bei meinem Standard-Verfahren bleiben.
Miniaturansicht angehängter Grafiken
combobox-aufgeklappt.jpg   combobox-zugeklappt.jpg  
Gruß, Klaus
Die Titanic wurde von Profis gebaut,
die Arche Noah von einem Amateur.
... Und dieser Beitrag vom Amateurprofi....
  Mit Zitat antworten Zitat