![]() |
Wie bestimmte ComboBox-Einträge disablen?
Hallo,
ich möchte bestimmte Einträge einer ComboBox disablen. Ich habe das auf 2 Arten versucht, die aber beide nicht zum Ziel geführt haben: 1. Setzen von TOwnerDrawState im OnDrawItem-Event:
Delphi-Quellcode:
Ergebnis: Keine sichtbare Veränderung, wohl weil State kein var(rückgabe)-Parameter ist
Include(State, odDisabled);
2. Fontfarbe im OnDrawItem-Event grau zeichnen, damit es wie disabled aussieht:
Delphi-Quellcode:
Ergebnis: Graue Schrift funktioniert, aber wie kann ich den Eintrag effektiv disablen, sodass ein Klick auf diesen Eintrag nicht weitergegeben wird?
with TComboBox(Control) do
Canvas.Font.Color := clGray; //usw. |
Re: Wie bestimmte ComboBox-Einträge disablen?
hi,
woher weist die combobox, welche einträge sie disablen soll? ich würde es evtl so machen... setzen, welche einträge deaktiviert sind (gibt evtl bessere varianten)...
Delphi-Quellcode:
im onchange das ausgewählte prüfen und bei deaktiviert zum zuletzt ausgewählten zurückspringen
combobox1.Items.Objects[0]:=TObject(0);//disabled
combobox1.Items.Objects[1]:=TObject(1);//enabled combobox1.Items.Objects[2]:=TObject(0);//disabled ...
Delphi-Quellcode:
HTH Frank
if combobox1.Items.Objects[combobox1.itemindex]=TObject(0) then
begin showmessage('disabled'); combobox1.itemindex:=oldindex; end else oldindex:=combobox1.itemindex; |
Re: Wie bestimmte ComboBox-Einträge disablen?
Zitat:
Zitat:
Zitat:
Delphi-Quellcode:
Ich weiß noch nicht, wie ich im OnSelect-Event abfragen kann, welches Item angeklickt wurde, da ItemIndex zu diesem Zeitpunkt noch nicht auf das angeklickte Item verweist und auch ComboBox.Text noch nicht upgedatet ist.
//Im OnSelect-Event der ComboBox:
ComboBox.DroppedDown := True; |
Re: Wie bestimmte ComboBox-Einträge disablen?
Furchtbare Entdeckung: Weder in ComboBox.OnChange noch in ComboBox.OnSelect kann man ComboBox.Text einen Wert zuweisen!! (D.h. man kann schon, aber er wird nicht angezeigt, sondern immer nur das angeklickte Item). Somit scheint es nicht möglich zu sein, ComboBox.Text zurückzusetzen, um ein Item als disabled zu simulieren!
Wer weiß einen Ausweg? |
Re: Wie bestimmte ComboBox-Einträge disablen?
Die perfekte Simulation von disabled-Items in einer ComboBox scheint nicht möglich zu sein. Bliebe nur noch der Ausweg, statt der ComboBox-DropDown-Liste ein Popup-Menü anzuzeigen. Wer weiß zufällig, wie man das Herunterklappen der ComboBox-DropDown-Liste beim Anklicken der ComboBox verhindern kann?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:39 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