码迷,mamicode.com
首页 > 其他好文 > 详细

Firemonkey ListView 点击事件

时间:2015-09-08 08:24:01      阅读:294      评论:0      收藏:0      [点我收藏+]

标签:

Firemonkey ListView 的点击事件一直让人摸不着头绪(各平台触发规则不太相同),因为它提供了点击相关的事件就有如下:

  • OnChange:改变项目触发。
  • OnClick:点击触发。
  • OnItemClick:点击项目触发
    • Windows 平台:按下立即触发,放开后接着触发 OnItemClickEx。
    • Android 平台:按下立即触发,不用放开接着 OnItemClickEx(按钮 Button 触发顺序与 Widnows 相同,要放开才会触发 OnItemClickEx)。
  • OnItemClickEx:项目内单项触发(以下以此为例,单纯只用此事件)

下例将 Item.Apperance 设定为 Custom。

技术分享

 

可获取每一个单项的事件触发:

技术分享

 

有一些问题存在:

  1. 其中按钮点击后,并不会更新 ItemIndex,所以采用变通方式,在按钮的 TagFloat 加入编号来识别。
  2. 点击 Accessory 后是触发 Text 而非 Accessory,这部份我有改动到源码,使它能正常辨别是点击到那一个(改动源码并不建议,有兴趣自行研究)。

 

参考代码:

procedure TForm1.ListView1ItemClickEx(const Sender: TObject; ItemIndex: Integer;
  const [Ref] LocalClickPos: TPointF; const ItemObject: TListItemDrawable);
begin
     if ItemObject is TListItemText       then Label1.Text := OnItemClickEx_Text_      + ItemIndex.ToString else
     if ItemObject is TListItemImage      then Label1.Text := OnItemClickEx_Image_     + ItemIndex.ToString else
     if ItemObject is TListItemAccessory  then Label1.Text := OnItemClickEx_Accessory_ + ItemIndex.ToString else
     if ItemObject is TListItemTextButton then Label1.Text := OnItemClickEx_Button_    + TListItemTextButton(ItemObject).TagFloat.ToString else
                                               Label1.Text := OnItemClickEx            + ItemIndex.ToString;
end;

 

Firemonkey ListView 点击事件

标签:

原文地址:http://www.cnblogs.com/onechen/p/4790503.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!