Показать сообщение отдельно
  #3  
Старый 05.05.2022, 22:10
Cafabuiter Cafabuiter вне форума
Прохожий
 
Регистрация: 04.05.2022
Сообщения: 3
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от Kailon
Можно сделать всё
Код:
var
  SList: TStringList;
...
function CBFilter(AText: String): TStringList;
var
  I: LongInt;
  SL: TStringList;
begin
  SL := TStringList.Create;
  for I := 0 to SList.Count - 1 do
    if Pos(AnsiUpperCase(AText), AnsiUpperCase(SList[i])) > 0 then
      SL.Add(SList[i]);
  Result := SL;
end;

procedure TForm1.Edit1Change(Sender: TObject);
begin
  if Edit1.Text <> '' then
    ComboBox1.Items := CBFilter(Edit1.Text)
  else
    ComboBox1.Items := SList;
end;

procedure TForm1.FormCreate(Sender: TObject);
var
  I: LongInt;
begin
  SList := TStringList.Create;
  for I := 0 to ComboBox1.Items.Count - 1 do
    SList.Add(ComboBox1.Items[i]);
end;

Спасибо за ответ!
Но, судя по Вашему коду, это решение использует два экранных элемента: TEdit и TComboBox. То есть, ComboBox фильтруется используя строку,вводимую в Edit. Я же хотел обойтись одним ComboBox.
Ответить с цитированием