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中,編輯ListBoxItem1Text屬性。

在這個例子中,(USA55個州),第一項爲“Alabama”。

7.        也把其他項目編輯好,例如AlaskaArizonaArkansasCaliforniaColorado,等等。

8.        iOS SimulatoriOS Device目標平臺上運行這個應用程序。

你在點按TComboBox之後,Picker控件就會出現,之後你就可以選擇一個項目了。

 

 

 

 

使用代碼來建立項目列表

 

要用代碼建立項目列表,你可以像下面的代碼一樣使用Add方法:

  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.    
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如下:

  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.    
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方法來找到這個值,如下:

 

  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.    
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,編寫如下代碼:

 

  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.    
 
procedure TForm27.CalendarEdit1Change(Sender: TObject);
begin
  ShowMessage(Format('Item %s at Index %d was selected. ',
    [ComboBox1.Selected.Text, ComboBox1.ItemIndex]));
end;

 

 

這個事件處理過程顯示一個對話框來提示選中的項。

Format函數根據一個格式字符串以及參數數組來返回一個格式化的字符串。

 

 

 

 

 

 

 

 

 

翻譯的不好,請大家賤諒!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章