![]() |
ComboBox Liste: Lange Texte mit ToolTip
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:
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.
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; Vielen Dank für Eure Vorschläge! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:09 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