在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函數根據一個格式字符串以及參數數組來返回一個格式化的字符串。
翻譯的不好,請大家賤諒!