Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/216.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 将OnClick翻译成OnTouch(或类似的东西)?_Android_Ios_Delphi_Firemonkey_Delphi Xe5 - Fatal编程技术网

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

Android 将OnClick翻译成OnTouch(或类似的东西)?,android,ios,delphi,firemonkey,delphi-xe5,Android,Ios,Delphi,Firemonkey,Delphi Xe5,我是智能手机开发新手。我正在使用DelphiXe5创建一个可以移植到Android和IPhone的测试应用程序 我有一个FireMonkey移动应用程序,其中主窗体上有一个TlistBox。我希望用户在列表中选择一个项目,然后根据他们的选择以另一种形式显示一些信息 我目前使用ListBox的OnClick事件来完成此操作 然而,当在设备上进行测试时,我似乎不得不多次触摸它(几乎就像用鼠标双击一样) 我是不是应该使用某种触摸事件?手势 如果是,我将如何获取所选项目的索引 OnClick事件示例 p

我是智能手机开发新手。我正在使用DelphiXe5创建一个可以移植到Android和IPhone的测试应用程序

我有一个FireMonkey移动应用程序,其中主窗体上有一个TlistBox。我希望用户在列表中选择一个项目,然后根据他们的选择以另一种形式显示一些信息

我目前使用ListBox的OnClick事件来完成此操作

然而,当在设备上进行测试时,我似乎不得不多次触摸它(几乎就像用鼠标双击一样)

我是不是应该使用某种触摸事件?手势

如果是,我将如何获取所选项目的索引

OnClick事件示例

procedure TfrmProjects.lbxProjectsClick(Sender: TObject);
begin
 ShowMessage(IntToStr(lbxProjects.ItemIndex));
end;
编辑:

我查看了GestureManager并将其与ListBox的触摸属性手势管理器绑定,但似乎找不到简单的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
;它们都包含一些很好的演示项目。在Embarcadero的docwiki文档中也有一些教程。

对于
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
;它们都包含一些很好的演示项目。在Embarcadero的docwiki文档中也有一些教程。

如果您发现必须在滚动后点击它,但如果没有滚动,则不会点击,那么这是我之前记录的错误<根据我的经验,code>OnClick应该可以工作,但会被滚动操作破坏

请参考,看看是否符合您的经验


有趣的是,顺便说一句,这里有一个几乎“反之亦然”的错误。如果你发现你必须在滚动之后轻轻点击它,但如果没有滚动,那么这就是我之前记录的错误<根据我的经验,code>OnClick应该可以工作,但会被滚动操作破坏

请参考,看看是否符合您的经验


有趣的是,作为旁白,这里有一个几乎是“反之亦然”的词.

事件是在你触摸时触发然后释放的吗,因为
OnClick
通常在鼠标按钮释放之前不会触发?事件是在你触摸时触发然后释放的吗,因为
OnClick
通常在鼠标按钮释放之前不会触发?今天晚些时候我会尝试一下,让你知道-谢谢KenIll今天晚些时候试试,让你知道-谢谢Ken