Stehe da gerade auf dem Schlauch. Es soll durchaus das OnChange Event verwendet werden, hab das oben nicht erwähnt, sorry.
Und dort bekomme ich die von dir aufgeführten Werte deiner procedure nicht.
Hab es daher so angepasst, funktioniert jedoch auch nicht:
Delphi-Quellcode:
if Assigned(ChooseF.Items) and (ChooseF.Items.Count > 0) then
begin
for i := Length(ChooseF.text) - 1 downto 1 do
begin
FoundInIndex := ChooseF.Items.IndexOf(ChooseF.text);
if FoundInIndex > -1 then
begin
ShowMessage('Found');
break;
end else
begin
ChooseF.text := Copy(ChooseF.text, 1, i);
Choosef.SelStart := length(choosef.text);
end;
end;
end;
Es bleibt zwar wenigstens das Zeichen stehen, aber die Suche geht spätestens ab dem zweiten Zeichen nicht weiter. Ggf. hilft das Beispiel im anhang aus Delphi, wie es funktionieren sollte.
Bild 1 und 2: Die Eingabe bei vorhandenen Einträgen.
Bild 3: Eingabe und mit der letzten Ziffer ("I16x") wurde nichts gefunden und daher wieder um eine Stelle gekürzt ("I16").