将焦点设置到 tlistview 中的搜索框
Setfocus to the searchbox in a tlistview
我在西雅图工作,只为 windows 编写 FM 应用程序。
我的表单上有一个 tlistview 并填充了数据。
我打开了搜索选项。
如何以编程方式将焦点设置到搜索框?
如何增加搜索框的大小和字体大小?
谢谢
搜索框不能以编程方式访问,除非将其设置为可见并在更改时触发事件。否则它只能由用户访问。
因此,访问有点涉及。然而,OnSearchChange
事件的 example 激发了以下答案:
uses ..., FMX.SearchBox;
type
TForm17 = class(TForm)
ListView1: TListView;
Button1: TButton;
Label1: TLabel;
...
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
sb: TSearchBox; // a local reference
...
end;
implementation
procedure TForm17.Button1Click(Sender: TObject);
begin
if Assigned(sb) then
sb.SetFocus;
end;
procedure TForm17.FormCreate(Sender: TObject);
var
i: integer;
begin
ListView1.SearchVisible := True; // or set in the Object Inspector at design time
for i := 0 to ListView1.Controls.Count-1 do
if ListView1.Controls[I].ClassType = TSearchBox then
begin
sb := TSearchBox(ListView1.Controls[i]);
Break;
end;
end;
procedure TForm17.ListView1SearchChange(Sender: TObject);
begin
if Assigned(sb) then
Label1.Text := sb.Text;
end;
在创建表单时,我们搜索 SearchBox 控件,如果找到,我们会在 sb: TSearchBox;
字段中存储对它的引用。然后访问就很简单了。
我在西雅图工作,只为 windows 编写 FM 应用程序。
我的表单上有一个 tlistview 并填充了数据。
我打开了搜索选项。
如何以编程方式将焦点设置到搜索框?
如何增加搜索框的大小和字体大小?
谢谢
搜索框不能以编程方式访问,除非将其设置为可见并在更改时触发事件。否则它只能由用户访问。
因此,访问有点涉及。然而,OnSearchChange
事件的 example 激发了以下答案:
uses ..., FMX.SearchBox;
type
TForm17 = class(TForm)
ListView1: TListView;
Button1: TButton;
Label1: TLabel;
...
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
sb: TSearchBox; // a local reference
...
end;
implementation
procedure TForm17.Button1Click(Sender: TObject);
begin
if Assigned(sb) then
sb.SetFocus;
end;
procedure TForm17.FormCreate(Sender: TObject);
var
i: integer;
begin
ListView1.SearchVisible := True; // or set in the Object Inspector at design time
for i := 0 to ListView1.Controls.Count-1 do
if ListView1.Controls[I].ClassType = TSearchBox then
begin
sb := TSearchBox(ListView1.Controls[i]);
Break;
end;
end;
procedure TForm17.ListView1SearchChange(Sender: TObject);
begin
if Assigned(sb) then
Label1.Text := sb.Text;
end;
在创建表单时,我们搜索 SearchBox 控件,如果找到,我们会在 sb: TSearchBox;
字段中存储对它的引用。然后访问就很简单了。