我是智能手机开发新手。我正在使用 Delphi Xe5 创建一个可以移植到 Android 和 iPhone 的测试应用程序。
我有一个 FireMonkey 移动应用程序,其中的主窗体上有一个 TlistBox。我希望用户在列表中选择一个项目,然后我根据他们的选择以另一种形式显示一些信息。
我目前使用 ListBox 的 OnClick 事件来执行此操作
但是,在设备上测试时,似乎我不得不多次触摸它(几乎就像用鼠标双击)。
我应该使用某种触摸事件吗?手势?
如果是这样,我如何获得所选项目的索引?
示例 OnClick 事件
procedure TfrmProjects.lbxProjectsClick(Sender: TObject);
begin
ShowMessage(IntToStr(lbxProjects.ItemIndex));
end;
编辑:
我查看了 GestureManager 并将其绑定(bind)到 ListBox 的 Touch 属性 Gesture Manager,但似乎找不到简单的 OnTouch
谢谢
最佳答案
对于TListBox
,您只需使用OnChange
事件。不需要 TGestureManager
;通过点击更改选择会自动路由到那里:
procedure TForm1.ListBox1Change(Sender: TObject);
var
Item: TListBoxItem;
begin
Item := ListBox1.Selected;
if Assigned(Item) then
ShowMessage(Format('Item %d text is %s', [Item.Index, Item.Text]))
else
ShowMessage('No item selected');
end;
您可能想花一些时间了解为 FireMonkey Mobile 提供的样本。 (您可以从“开始”菜单的 XE5 项中找到它们;有一个可以打开该文件夹的 Samples
链接。)有两个有用的独立文件夹,FireMonkeyMobile
和MobileCodeSnippets
;它们都包含一些很好的演示项目。在 Mobile Tutorials 的文档中也有几个教程。在 Embarcadero 的 docwiki 中。
关于android - 将 OnClick 翻译成 OnTouch(或类似的东西)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19822639/