SearchBox не предназначено быть доступно программно для установки его видимым и огня события, когда изменился, кроме. В противном случае он должен быть доступен только пользователю. Следовательно, доступ немного связан. Тем не менее, example из OnSearchChange
событий вдохновили следующий ответ:
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;
поле. Тогда доступ довольно прост.
Отлично! спасибо –