リストピッカーはIFMXPickerServiceのCreateListPickerメソッドで作成できます。
uses
FMX.Platform;
if TPlatformServices.Current.SupportsPlatformService(IFMXPickerService, PickerService) then
begin
FListPicker := PickerService.CreateListPicker;
…
作成したリストピッカーのイベントや選択項目を設定します。
FListPicker.Parent := Button1;
// イベントの設定
FListPicker.OnValueChanged := DoListPickerValueChanged;
FListPicker.OnHide := DoListPickerHide;
FListPicker.OnShow := DoListPickerShow;
// 選択項目の設定
FListPicker.Values.Add('Delphi');
FListPicker.Values.Add('C++Builder');
FListPicker.Values.Add('RAD Studio');
// 選択されている項目の設定
FListPicker.ItemIndex := 1;
Showメソッドを呼び出すと、リストピッカーを表示できます。
FListPicker.Show;
サンプルアプリケーション
フォームにボタン(TButton)とメモ(TMemo)を配置します。
interfaceのusesにFMX.Pickersを追加します。
interface
uses
…, FMX.Pickers; //追加
フォームにprivate変数を追加します。
type
TForm1 = class(TForm)
Button1: TButton;
Memo1: TMemo;
private
{ private 宣言 }
FListPicker: TCustomListPicker; //追加
フォームのOnCreateイベントを追加します。
リストピッカーを作成し、イベントや選択項目を設定します。
uses
FMX.Platform;
procedure TForm1.FormCreate(Sender: TObject);
var
PickerService: IFMXPickerService;
begin
if TPlatformServices.Current.SupportsPlatformService(IFMXPickerService, PickerService) then
begin
FListPicker := PickerService.CreateListPicker;
FListPicker.Parent := Button1;
// イベントの設定
FListPicker.OnValueChanged := DoListPickerValueChanged;
FListPicker.OnHide := DoListPickerHide;
FListPicker.OnShow := DoListPickerShow;
// 選択項目の設定
FListPicker.Values.Add('Delphi');
FListPicker.Values.Add('C++Builder');
FListPicker.Values.Add('RAD Studio');
// 選択されている項目の設定
FListPicker.ItemIndex := 1;
end;
end;
リストピッカーのイベントを追加します。
イベントが発生するとMemo1に出力します。
type
TForm1 = class(TForm)
Button1: TButton;
Memo1: TMemo;
procedure FormCreate(Sender: TObject);
private
{ private 宣言 }
FListPicker: TCustomListPicker;
procedure DoListPickerValueChanged(Sender: TObject; const AValueIndex: Integer); // 追加
procedure DoListPickerHide(Sender: TObject); // 追加
procedure DoListPickerShow(Sender: TObject); // 追加
public
{ public 宣言 }
end;
procedure TForm1.DoListPickerHide(Sender: TObject);
begin
Memo1.Lines.Add('DoListPickerHide');
end;
procedure TForm1.DoListPickerShow(Sender: TObject);
begin
Memo1.Lines.Add('DoListPickerShow');
end;
procedure TForm1.DoListPickerValueChanged(Sender: TObject; const AValueIndex: Integer);
begin
Memo1.Lines.Add('DoListPickerValueChanged AValueIndex=' + IntToStr(AValueIndex));
end;
ボタン(Button1)のOnClickイベントを追加します。
ボタンを押すとリストピッカーを表示します。
procedure TForm1.Button1Click(Sender: TObject);
begin
FListPicker.Show;
end;