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