是否可以通过 delphi 中的组合框清除列表框

Is it possible to clear a list box via a combo box in delphi

我正在尝试找到一种通过使用 ComboBox 搜索数据库来显示 ListBox 中的项目的方法。我已经这样做了,但是当我在 ComboBox 中选择另一个项目时,有没有办法清除 ListBox?

这是我目前的代码:

with dmAfritours do
begin
  while not(tblReserves.Eof) do
  begin
    if cbb1.Items[cbb1.ItemIndex]=tblReserves['Province'] then
    begin
      //lst1.Clear;
      lst1.Items.Add(tblReserves['ReserveName'])
    end;
    tblReserves.Next;
  end;
end;

您可以在进入 while 循环之前简单地 Clear() ListBox。另外,请确保在进入 while 循环之前调用 tblReserves.First;

像这样的东西应该可以正常工作:

procedure TMyForm.cbb1Select(Sender: TObject);
var
  Province: string;
begin
  Province := cbb1.Items[cbb1.ItemIndex];
  lst1.Clear;

  with dmAfritours do
  begin
    tblReserves.First;
    while not tblReserves.Eof do
    begin
      // alternatively, consider using the DataSet's Filter property instead...
      if tblReserves['Province'] = Province then
      begin
        lst1.Items.Add(tblReserves['ReserveName']);
      end;
      tblReserves.Next;
    end;
  end;
end;