Wie kann ich ein Item aus einer ComboBox löschen wenn der Style auf DropDown ist - also die ComboBox ausgeklappt ist ?
Ich meine jetzt nicht "Combobox1.items.delete(x)" das ist schon klar, ich will den Wert von "X" ermitteln.
Z.b,
Wenn man die ENTF Taste drückt während das Drop Down Menü sichtbar ist , und einen Eintrag markiert.
Das Problem ist , das kein Event ausgelöst wird wenn ich einen DropDown Eintrag mittels der Tastatur auswähle.
Weder ein "onSelect" noch ein "onChange" wird ausgelöst, ledeglich auf das "onKeyDown" wird reagiert.
Damit ich die "Delete" eigenschaft von combobox.items aufrufen kann, brauch ich aber einen ItemIndex.
Der ItemIndex ändert sich aber nur dann, wenn ein zuvor aus der Drop Down Liste ausgewählter Eintrag im Edit Feld der ComboBox steht, da ist aber das DropDown Menü schon wieder weg,
Ich will erreichen das ich den in der DropDown Liste ausgewählten Eintrag löschen kann während die ComboBox aufgekalppt ist, nicht erst wenn der Eintrag im EditFeld der ComboBox steht.
Kann mir ja jemand weiterhelfen ?
Danke
ComboBox Item löschen
Re: ComboBox Item löschen
Darf man fragen wozu das Ganze?
Willst du sowas machen, wie in der Google Search Bar (mit eingeben von Zeichen die Items selektieren)? Für sowas hatte ich mal einen Inplaceeditor geschrieben, der in einigen Anwenungen von mir läuft. Falls dich dieser interessiert, müsste ich mal schauen, ob ich diesen rauslösen kann.
Falls du aber wirklich Items bei einer ausgeklappten Combobox löschen willst, müsstest du dir vermutlich eine eigene Komponente bauen. Evtl. kannst du von der Combobox ableiten und die Tasten entprechend behandeln. Alternativ könntest du dir eine aus einem Edit und einer ListBox oder so bauen.
Evtl. reicht dir auch sowas (funktioniert hier zwar, ist aber nicht so, wie ich das jemanden zumuten würde):
Willst du sowas machen, wie in der Google Search Bar (mit eingeben von Zeichen die Items selektieren)? Für sowas hatte ich mal einen Inplaceeditor geschrieben, der in einigen Anwenungen von mir läuft. Falls dich dieser interessiert, müsste ich mal schauen, ob ich diesen rauslösen kann.
Falls du aber wirklich Items bei einer ausgeklappten Combobox löschen willst, müsstest du dir vermutlich eine eigene Komponente bauen. Evtl. kannst du von der Combobox ableiten und die Tasten entprechend behandeln. Alternativ könntest du dir eine aus einem Edit und einer ListBox oder so bauen.
Evtl. reicht dir auch sowas (funktioniert hier zwar, ist aber nicht so, wie ich das jemanden zumuten würde):
Code: Alles auswählen
TForm1 = class(TForm)
...
private
ComboboxItems: TStringList;
...
procedure TForm1.ComboBox1KeyDown(Sender: TObject;
var Key: Word; Shift: TShiftState);
begin
case Key of
VK_DELETE:
ComboBox1.Items.Delete(ComboBox1.ItemIndex);
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
ComboboxItems := TStringList.Create;
ComboboxItems.Text := Combobox1.Items.Text;
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
ComboboxItems.Free;
end;
procedure TForm1.ComboBox1Exit(Sender: TObject);
begin
Combobox1.Items.Text := ComboboxItems.Text;
end;
Code: Alles auswählen
type
TLiveSelection = (lsMoney, lsChilds, lsTime);
TLive = Array[0..1] of TLiveSelection;