delphi - 当我在Delphi中打开ComboBox的列表时,如何使SearchBox可见

标签 delphi combobox firemonkey search-box

我正在使用 Delphi 10 Seattle 创建多设备软件 (Win32) (Firemonkey)。 如何仅当列表显示在组合框中时才显示搜索框。 我用 ListBoxItems 填充代码中的 ComboBox。请参阅下面的示例。 现在,搜索框显示在关闭的组合框上。

procedure AddItems;
var
  SearchBox: TSearchBox;
  Item: TListBoxItem;
begin
  ComboBox.Items.Clear;
  SearchBox := TSearchBox.Create(ComboBox);
  SearchBox.Align := TAlignLayout.Contents;
  SearchBox.Parent := ComboBox;
  SearchBox.Visible:=True;
  Item := TListBoxItem.Create(ComboBox);
  Item.Parent := ComboBox;
  Item.Text := 'Item 1';
  Item := TListBoxItem.Create(ComboBox);
  Item.Parent := ComboBox;
  Item.Text := 'Item 2';
end;

最佳答案

使用 TComboBox 事件 OnPopupOnClosePopup

将 ScrollBox 声明移动到私有(private)表单(或框架)部分,并在 OnCreate 表单事件(或框架构造函数)中创建它。

type
  THeaderFooterForm = class(TForm)
    procedure FormCreate(Sender: TObject);
  private
    FSearchBox: TSearchBox;
  end;

procedure THeaderFooterForm.FormCreate(Sender: TObject);
begin
  FSearchBox := TSearchBox.Create(nil);
  FSearchBox.Align := TAlignLayout.Contents;
  FSearchBox.Parent := ComboBox;
  FSearchBox.Visible:=False;
end;

procedure THeaderFooterForm.ComboBoxClosePopup(Sender: TObject);
begin
  FSearchBox.Visible:=False;
end;

procedure THeaderFooterForm.ComboBoxPopup(Sender: TObject);
begin
  FSearchBox.Visible:=True;
end;

关于delphi - 当我在Delphi中打开ComboBox的列表时,如何使SearchBox可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33754623/

相关文章:

delphi - Delphi win32 应用程序的自安装程序

ios - 通过 RAD Studio 10.0 开发的 Firemonkey 应用程序在 iOS 7.1 上崩溃?

javascript - JQuery Combobox 触发另一个事件

c# - 获取 ComboBox 的 SelectedItem (MVVM)

ios - (NSString *) 它是指针还是 NSString?

sqlite - iOS 上 TDateTime 的舍入错误

android - Delphi使用facebook登录认证

Delphi快速文件复制

database - ms Access 表单 : combobox to multiselect dropdown menu

android - 如何使用 FireMonkey for Delphi XE5 检测/处理屏幕旋转