android - 将 OnClick 翻译成 OnTouch(或类似的东西)?

标签 android ios delphi firemonkey delphi-xe5

我是智能手机开发新手。我正在使用 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 链接。)有两个有用的独立文件夹,FireMonkeyMobileMobileCodeSnippets;它们都包含一些很好的演示项目。在 Mobile Tutorials 的文档中也有几个教程。在 Embarcadero 的 docwiki 中。

关于android - 将 OnClick 翻译成 OnTouch(或类似的东西)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19822639/

相关文章:

android - 按钮总是以状态列表中第一个列出的样式显示,无论其状态如何

android - 使用 PreferenceFragment 构建的设置页面中的工具栏

cocoa-touch - 哪个事件处理对象成为/失去第一响应者状态?

iphone - Xcode 4 : Missing File's Owner with Storyboard?

delphi - 重新创建窗口时 anchor 被破坏的解决方法?

database - 我如何从分布在 Internet 上的多个客户端连接到 delphi 7 上的 firebird 数据库?

android - 如何在 phonegap 数据库中使用 android 数据库/作为 phonegap 数据库

java - Android:按键盘上的完成按钮

ios - 您会使用哪个 iOS 可达性类?

delphi - 如何防止 TMainMenu 从 float 窗口获取焦点