unit Unit1;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, Forms, Controls, StdCtrls;
type
TForm1 = class(TForm)
ComboBox1: TComboBox;
procedure ComboBox1Change(Sender: TObject);
procedure ComboBox1CloseUp(Sender: TObject);
procedure ComboBox1DropDown(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
FFullList: TStringList;
end;
var
Form1: TForm1;
implementation
{$R *.lfm}
uses StrUtils;
procedure TForm1.ComboBox1Change(Sender: TObject);
begin
ComboBox1.DroppedDown := False;
end;
procedure TForm1.ComboBox1CloseUp(Sender: TObject);
begin
ComboBox1.Items.Clear;
end;
procedure TForm1.ComboBox1DropDown(Sender: TObject);
var
Items: TStrings;
Line, What: string;
begin
Items := ComboBox1.Items;
What := Trim(ComboBox1.Text);
for Line in FFullList do
if AnsiContainsText(Line, What) then
Items.Append(Line);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
ComboBox1.AutoSelect := False;
FFullList := TStringList.Create;
FFullList.Text :=
'abcdefghij' + LineEnding +
'fghijklmno' + LineEnding +
'klmnopqrst' + LineEnding +
'pqrstuvwxy' + LineEnding +
'uvwxyz' + LineEnding;
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
FFullList.Free;
end;
end.