在FireMonkey iOS应用程序中实现一个选择器
在iOS平台上,FireMonkey使用TComboBox组件来封装选择器组件:
要定义一个选择器并且列出可以选择的项目:
1. 选择File>New>FireMonkey Mobile Application – Delphi>Blank Application。
2. 在Tool Palette中选择TComboBox组件,然后拖到FireMonkey Mobile Form Designer上去。
要找到TComboBox,在ToolPalette的搜索框中输入开头的几个字母(“Com”):
3. 在你拖好控件之后,你就可以在Form Designer上看到这个TComboBox组件了。
右击TComboBox组件,选择Items Editor…
4. 要定义项目列表,多点几次Add Item:
5. 在Structure View中,选择ListBoxItem1(列表中的第一项)。
6. 在Object Inspector中,编辑ListBoxItem1的Text属性。
在这个例子中,(USA的55个州),第一项为“Alabama”。
7. 也把其他项目编辑好,例如Alaska,Arizona,Arkansas,California,Colorado,等等。
8. 在iOS Simulator或iOS Device目标平台上运行这个应用程序。
你在点按TComboBox之后,Picker控件就会出现,之后你就可以选择一个项目了。
使用代码来建立项目列表
要用代码建立项目列表,你可以像下面的代码一样使用Add方法:
- procedure TForm27.FormCreate(Sender: TObject);
- begin
- ComboBox1.Items.Add('Alabama');
- ComboBox1.Items.Add('Alaska');
- ComboBox1.Items.Add('Arizona');
- ComboBox1.Items.Add('Arkansas');
- ComboBox1.Items.Add('California');
- // Other states can be listed here
- ComboBox1.Items.Add('Virginia');
- ComboBox1.Items.Add('Washington');
- ComboBox1.Items.Add('West Virginia');
- ComboBox1.Items.Add('Wisconsin');
- ComboBox1.Items.Add('Wyoming');
- end;
procedure TForm27.FormCreate(Sender: TObject);
begin
ComboBox1.Items.Add('Alabama');
ComboBox1.Items.Add('Alaska');
ComboBox1.Items.Add('Arizona');
ComboBox1.Items.Add('Arkansas');
ComboBox1.Items.Add('California');
// Other states can be listed here
ComboBox1.Items.Add('Virginia');
ComboBox1.Items.Add('Washington');
ComboBox1.Items.Add('West Virginia');
ComboBox1.Items.Add('Wisconsin');
ComboBox1.Items.Add('Wyoming');
end;
显示指定的项
当前选中的项由ItemIndex属性指定。ItemIndex是一个整型值,使用从0开始的下标来指定(也就是,第一个项的下标是0)。
要显示延列表中第5项为选中(在下面的示例代码中是“California”),指定它的ItemIndex如下:
- procedure TForm27.FormCreate(Sender: TObject);
- begin
- ComboBox1.Items.Add('Alabama');
- ComboBox1.Items.Add('Alaska');
- ComboBox1.Items.Add('Arizona');
- ComboBox1.Items.Add('Arkansas');
- ComboBox1.Items.Add('California');
- // Other states can be listed here
- // Index of 5th item is "4"
- ComboBox1.ItemIndex := 4;
- end;
procedure TForm27.FormCreate(Sender: TObject);
begin
ComboBox1.Items.Add('Alabama');
ComboBox1.Items.Add('Alaska');
ComboBox1.Items.Add('Arizona');
ComboBox1.Items.Add('Arkansas');
ComboBox1.Items.Add('California');
// Other states can be listed here
// Index of 5th item is "4"
ComboBox1.ItemIndex := 4;
end;
如果不知道下标值,你也可以使用IndexOf方法来找到这个值,如下:
- procedure TForm27.FormCreate(Sender: TObject);
- begin
- ComboBox1.Items.Add('Alabama');
- ComboBox1.Items.Add('Alaska');
- ComboBox1.Items.Add('Arizona');
- ComboBox1.Items.Add('Arkansas');
- ComboBox1.Items.Add('California');
- // Other states can be listed here
- ComboBox1.ItemIndex := ComboBox1.Items.IndexOf('California');
- end;
procedure TForm27.FormCreate(Sender: TObject);
begin
ComboBox1.Items.Add('Alabama');
ComboBox1.Items.Add('Alaska');
ComboBox1.Items.Add('Arizona');
ComboBox1.Items.Add('Arkansas');
ComboBox1.Items.Add('California');
// Other states can be listed here
ComboBox1.ItemIndex := ComboBox1.Items.IndexOf('California');
end;
实现用户选择的事件处理过程
在用户选择完某一项之后,OnChange事件会被触发,你可以为OnChange事件实现事件处理过程。
要实现OnChange的事件处理过程:
1. 选择TcomboBox组件。
2. 在Object Inspector中,打开Events页,然后双击OnClick事件旁边的空白处。
3. 然后会自动打开Code Editor,编写如下代码:
- procedure TForm27.CalendarEdit1Change(Sender: TObject);
- begin
- ShowMessage(Format('Item %s at Index %d was selected. ',
- [ComboBox1.Selected.Text, ComboBox1.ItemIndex]));
- end;
procedure TForm27.CalendarEdit1Change(Sender: TObject);
begin
ShowMessage(Format('Item %s at Index %d was selected. ',
[ComboBox1.Selected.Text, ComboBox1.ItemIndex]));
end;
这个事件处理过程显示一个对话框来提示选中的项。
Format函数根据一个格式字符串以及参数数组来返回一个格式化的字符串。
翻译的不好,请大家贱谅!