[Edit]
if cBoxServername.Items.Count > 0 then
es müssen min. 2 Einträge vorhanden sein, damit die Bedingung zutrifft.
[/Edit
Das wäre mir aber neu. Count gibt die Anzahl der Elemente zurück, d.h. ein Count > 0 heißt mindestens ein Element vorhanden.
[edit] OK, hier noch einmal eine überarbeitete Version:
Delphi-Quellcode:
procedure TForm1.cBoxServernameKeyDown(Sender: TObject;
var Key: Word;
Shift: TShiftState);
var idx: integer;
begin
//Index einmalig ermitteln
idx := cBoxServername.Items.IndexOf(cBoxServername.Text);
//case statt if -> IMHO übersichtlicher und schneller
case Key
of
VK_RETURN:
begin
//wenn Text nicht vorhanden und
//nicht nur aus Leer- bzw. Steuerzeichen bestehend -> eintragen
if (idx = -1)
and (trim(cBoxServername.Text) <> '
')
then
cBoxServername.Items.Add(cBoxServername.Text);
end;
VK_DELETE:
begin
//wenn Eintrag gefunden
if idx > -1
then
begin
//Eintrag löschen
cBoxServername.Items.Delete(idx);
//Erst einmal den alten Text löschen
cBoxServername.Text := '
';
//-> wird ggf. durch geänderten Index neu gesetzt
if cBoxServername.Items.Count > 0
then
cBoxServername.ItemIndex := 0;
//notwendig, da Anzeige sonst nicht aktualisiert wird
Key := 0;
end;
end;
end;
end;
procedure TForm1.cBoxServernameKeyPress(Sender: TObject;
var Key: Char);
begin
//"Bimmeln" unterbinden
if Key = sLineBreak[1]
then
Key := #0;
end;
[/edit]