Immer wenn du eine Eingabe akzeptieren möchtest ruft du folgende Prozedur auf:
Delphi-Quellcode:
procedure ComboboxRollingHistory(cbo:TCustomComboBox; maxitems:Integer=20);
var
s : string;
i : Integer;
begin
s := TComboBox(cbo).Text;
if s='' then Exit;
i := cbo.Items.IndexOf(s);
if i >= 0 then
begin
cbo.Items.Move(i, 0);
cbo.ItemIndex := 0;
end
else
begin
cbo.Items.Insert(0, s);
if maxitems >= 0 then
while cbo.Items.Count > maxitems do
cbo.Items.Delete(cbo.Items.Count-1);
end;
end;
Der zuletzt eingegebene Text wandert automatisch an die Poleposition und selten verwendete Texte werden vergessen wenn die Listengröße
maxitems überschritten wird.
Für das Laden und Speichern musst du dich gesondert kümmern (im OnCreate-Event des Formulars laden und in OnDestroy speichern).