Hi,
ich hab das Problem, dass in meiner ComboBox Texte stehen, die länger sind, als die ComboBox breit ist. Da ich die ComboBox nicht breiter machen will ("Style Guide"
) wäre denke ich ein ToolTip (wie bei der ListView) ganz gut, der bei zu langen Texten über dem entsprechenden Eintrag erscheint.
Das Problem dabei ist jetzt, im richtigen Moment den ToolTip anzuzeigen (naja "wie" weiß ich auch noch nich, aber dazu später). Also ich meine den Moment, wenn man die Liste der ComboBox aufgeklappt hat und mit der Maus (oder Tastatur) die Einträge durchgeht, so dass sie fokussiert (oder selektiert) angezeigt werden. Ich meine also nicht das Auswählen oder Anklicken.
Das einzige, was ich bisher gefunden habe ist das hier:
Delphi-Quellcode:
procedure T_ComboBox.WMDrawItem(var Message: TWMDrawItem);
begin
if Message.DrawItemStruct.CtlType = ODT_LISTBOX then
if Message.DrawItemStruct.itemState = ODS_SELECTED then
if Canvas.TextWidth(Items[Message.DrawItemStruct.itemID]) > ClientWidth - 10 then
//ToolTip anzeigen
end;
Das würde auch funktionieren, aber dann müßte ich auch alles selbst zeichen, weil die Message "WM_DrawItem" nur im Owner-Draw-Style ausgelöst wird.
Vielen Dank für Eure Vorschläge!