2015-12-03 7 views
-5

Я работаю в Сиэтле, пишу приложение FM только для окон.Setfocus к поисковой системе в tlistview

У меня есть tlistview на моей форме и у вас есть данные.

У меня есть опция поиска включена.

Как программно установить фокус на окно поиска?

Как увеличить размер и размер шрифта в поле поиска?

благодаря

ответ

2

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; поле. Тогда доступ довольно прост.

+1

Отлично! спасибо –