-4

私はシアトルで働いており、Windows 専用の FM アプリケーションを書いています。

フォームに tlistview があり、データが入力されています。

検索オプションをオンにしました。

プログラムで検索ボックスにフォーカスを設定するにはどうすればよいですか?

検索ボックスのサイズとフォント サイズを大きくするにはどうすればよいですか?

ありがとう

4

1 に答える 1

2

検索ボックスは、表示するように設定し、変更時にイベントを発生させる場合を除いて、プログラムでアクセスすることを意図していません。それ以外の場合は、ユーザーのみがアクセスできるようになっています。したがって、アクセスは少し複雑です。ただし、イベントの例から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;フィールドに保存します。その後、アクセスは非常に簡単です。

于 2015-12-03T23:00:56.330 に答える