TComboBox

Maeximum

Grünschnabel
Hi@all,
ich habe mal eine Frage zu der "TComboBox" in Delphi. Ich habe ein Programm geschrieben, mit dem man kontrollieren kann, ob bestimmte Leute zutritt zu einer bestimmten Veranstaltung haben. Die Namen stehen alle in der TComboBox. Wenn man in der TComboBox einen Namen eingibt, hätte ich gerne, dass Delphi je nach Eingabe der Buchstaben die Namen automatisch vervollständigt. Ich habe bei einem anderen Programm schon mal gesehen, dass sowas geht. Weiß jemand, was man da machen muss (programmieren oder Eigenschaften der Box)?
 
das funktioniert leider nicht, weil Delphi zumindest in der Version 5 den Befehl "AutoComplete" nicht kennt. Ist das bei Delphi 6 anders?
 
Ich hab gerade nur Delphi 6 hier installiert. Ist aber schon möglich, dass es die Eigenschaft in Delphi 5 noch nicht gab.
Ich kann nächste Woche mal nachsehen, wenn ich mal wieder in der Nähe meiner Delphi 5-CD bin.
 
es kann auch sein, dass du das AutoComplete mit der Delphi ListBox verwechselst, da soll es das AutoComplete angeblich geben.
 
Original geschrieben von Maeximum
Hi@all,
ich habe mal eine Frage zu der "TComboBox" in Delphi. Ich habe ein Programm geschrieben, mit dem man kontrollieren kann, ob bestimmte Leute zutritt zu einer bestimmten Veranstaltung haben. Die Namen stehen alle in der TComboBox. Wenn man in der TComboBox einen Namen eingibt, hätte ich gerne, dass Delphi je nach Eingabe der Buchstaben die Namen automatisch vervollständigt. Ich habe bei einem anderen Programm schon mal gesehen, dass sowas geht. Weiß jemand, was man da machen muss (programmieren oder Eigenschaften der Box)?


Hi alle zusammen,
nach der Torry Page (http://www.swissdelphicenter.ch/torry/vcl.php) müsste es über Windowsmessages gehen:

{
Ever wondered how to make a combobox
with autocomplete like the one in the explorer?
The trick is in the CB_FINDSTRING API call.
}


var
LastKey: Word;

procedure TForm1.ComboBox1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
LastKey := Key;
end;

procedure TForm1.ComboBox1Change(Sender: TObject);
var
Srch: string;
ix: Integer;
begin
Srch := combobox1.Text;
if LastKey = $08 then
begin
LastKey := 0;
Exit;
end;
LastKey := 0;
ix := combobox1.Perform(CB_FINDSTRING, - 1, Longint(PChar(Srch)));
if ix > CB_ERR then
begin
combobox1.ItemIndex := ix;
combobox1.SelStart := Length(Srch);
combobox1.SelLength := (Length(combobox1.Text) - Length(Srch));
end;
end;
 
Zurück