Zitat von
_frank_:
hi,
woher weist die combobox, welche einträge sie disablen soll?
Das mache ich im OnDrawItem-Event, wenn bestimmte Bedingungen zutreffen.
Zitat von
_frank_:
ich würde es evtl so machen...
setzen, welche einträge deaktiviert sind (gibt evtl bessere varianten)...
Delphi-Quellcode:
combobox1.Items.Objects[0]:=TObject(0);//disabled
combobox1.Items.Objects[1]:=TObject(1);//enabled
combobox1.Items.Objects[2]:=TObject(0);//disabled
...
Danke, ist eine gute Idee, werde es im OnDrawItem-Event machen ...
Zitat von
_frank_:
im onchange das ausgewählte prüfen und bei deaktiviert zum zuletzt ausgewählten zurückspringen
Delphi-Quellcode:
if combobox1.Items.Objects[combobox1.itemindex]=TObject(0) then
begin
showmessage('disabled');
combobox1.itemindex:=oldindex;
end else oldindex:=combobox1.itemindex;
Hm, ich möchte das so machen, dass bei einem Klick auf ein disabled-Item gar nichts passiert (so wie bei einem Disabled-Item in einem Menü). Ich habe folgendes versucht, aber ich bin da noch nicht ganz durch:
Delphi-Quellcode:
//Im OnSelect-Event der ComboBox:
ComboBox.DroppedDown := True;
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.