![]() |
Combobox Item als Hint
Hallo zusammen,
Ich hab eine Combobox, in der die Items meistens breiter als die Box sind. Jetzt möchte ich den den Hint auf den Inhalt des ausgewählten Items setzen. Der Hint soll auch gesetzt werden, wenn die ComboBox aufgeklappt ist und sich die Maus auf einem Item befindet. Leider konnte ich kein Event finden in dem ich das machen könnte. Vielleicht weiss von euch einer wie man das machen könnte. grüße, daniel |
Re: Combobox Item als Hint
Hallo
Du könntest die Breite des aufgeklappten Bereichs ändern
Delphi-Quellcode:
dann siehst du schon mal mehr von den Einträgen (notwendige Länge kannst du mit Canvas.textwidth und dem breitesten Item ermitteln).
ComboBox1.Perform(CB_SETDROPPEDWIDTH,Breite,0);
im Onchange und onselectereignis könntest du noch den hint der Eingabe festlegen. Es fehlen die mousemove-ereignisse, um in einer Combobox hints entsprechen der Items anzuzeigen. Für Listboxen gibts schon was im Forum ![]() Wenn du für jeden Eintrag einen Hint anzeigen willst, wär vielleicht noch ondrawitem eine Möglichkeit. Frag dort ab, ob das Item "selektiert" dargestellt werden soll (also ist die mouse drüber) und bau den hint so auf, wie bei den Codebsp bei der Listbox. Mfg Frank |
Re: Combobox Item als Hint
Ist zwar schon ein älteres Topic. Aber ich schreib jetzt trotzdem hier hinein, da ich genau dasselbe Problem habe.
Ich habe folgendes versucht:
Delphi-Quellcode:
Mit dieser Methode wird wohl der richtige Hint dem richtigen Eintrag zugewiesen. Das Problem ist aber, dass dieser Hint erst angezeigt wird, wenn man die Combobox schliesst und mit der Maus darüberfährt. Gibt es jetzt irgendeine Möglichkeit, den Hint anzeigen zu erzwingen?
procedure TForm1.Combobox1(Control: TWinControl;
Index: Integer; Rect: TRect; State: TOwnerDrawState); var olh:String; begin with Combobox1 do begin Canvas.Brush.Style:=bsSolid; Canvas.FillRect(Rect); Canvas.TextRect(Rect, Rect.Left, Rect.Top,Items[Index]); olh:=Hint; if (index<=Items.Count-1) then Hint:=Items.Strings[Index] else Hint:=''; if Hint<>olh then Application.CancelHint; end end; |
Re: Combobox Item als Hint
So und auch schon was gefunden im Internet:
![]() Hat zwar ein paar kleine Makel, aber muss man halt noch ein bisschen rumbasteln. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:10 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 by Thomas Breitkreuz