http://blog.csdn.net/delphiteacher/article/details/8924110

Delphi for iOS开发指南(6):在iOS应用程序中使用ComboBox组件来从列表中选择某一项

 

 

 

在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方法:

[delphi] view plain copy
 
 在CODE上查看代码片派生到我的代码片
  1. procedure TForm27.FormCreate(Sender: TObject);  
  2. begin  
  3.   ComboBox1.Items.Add('Alabama');  
  4.   ComboBox1.Items.Add('Alaska');  
  5.   ComboBox1.Items.Add('Arizona');  
  6.   ComboBox1.Items.Add('Arkansas');  
  7.   ComboBox1.Items.Add('California');  
  8.   // Other states can be listed here  
  9.   ComboBox1.Items.Add('Virginia');  
  10.   ComboBox1.Items.Add('Washington');  
  11.   ComboBox1.Items.Add('West Virginia');  
  12.   ComboBox1.Items.Add('Wisconsin');  
  13.   ComboBox1.Items.Add('Wyoming');  
  14. end;  
  15.   
  16.    


 

 

 

 

显示指定的项

 

当前选中的项由ItemIndex属性指定。ItemIndex是一个整型值,使用从0开始的下标来指定(也就是,第一个项的下标是0)。

要显示延列表中第5项为选中(在下面的示例代码中是“California”),指定它的ItemIndex如下:

[delphi] view plain copy
 
 在CODE上查看代码片派生到我的代码片
  1. procedure TForm27.FormCreate(Sender: TObject);  
  2. begin  
  3.   ComboBox1.Items.Add('Alabama');  
  4.   ComboBox1.Items.Add('Alaska');  
  5.   ComboBox1.Items.Add('Arizona');  
  6.   ComboBox1.Items.Add('Arkansas');  
  7.   ComboBox1.Items.Add('California');  
  8.   // Other states can be listed here  
  9.    
  10.   // Index of 5th item is "4"  
  11.   ComboBox1.ItemIndex := 4;  
  12. end;  
  13.   
  14.    

 

如果不知道下标值,你也可以使用IndexOf方法来找到这个值,如下:

 

[delphi] view plain copy
 
 在CODE上查看代码片派生到我的代码片
  1. procedure TForm27.FormCreate(Sender: TObject);  
  2. begin  
  3.   ComboBox1.Items.Add('Alabama');  
  4.   ComboBox1.Items.Add('Alaska');  
  5.   ComboBox1.Items.Add('Arizona');  
  6.   ComboBox1.Items.Add('Arkansas');  
  7.   ComboBox1.Items.Add('California');  
  8.   // Other states can be listed here  
  9.    
  10.   ComboBox1.ItemIndex := ComboBox1.Items.IndexOf('California');  
  11. end;  
  12.   
  13.    
  14.   
  15.    

 

 

 

实现用户选择的事件处理过程

 

在用户选择完某一项之后,OnChange事件会被触发,你可以为OnChange事件实现事件处理过程。

要实现OnChange的事件处理过程:

1.        选择TcomboBox组件。

2.        在Object Inspector中,打开Events页,然后双击OnClick事件旁边的空白处。

3.        然后会自动打开Code Editor,编写如下代码:

 

[delphi] view plain copy
 
 在CODE上查看代码片派生到我的代码片
  1.    
  2. procedure TForm27.CalendarEdit1Change(Sender: TObject);  
  3. begin  
  4.   ShowMessage(Format('Item %s at Index %d was selected. ',  
  5.     [ComboBox1.Selected.Text, ComboBox1.ItemIndex]));  
  6. end;  
  7.   
  8.    

 

这个事件处理过程显示一个对话框来提示选中的项。

Format函数根据一个格式字符串以及参数数组来返回一个格式化的字符串。