FireMonkey ListView 设计期添加按钮及其 OnClick 事件
FireMonkey 的 ListView 在设计期可以定制一个 Item 上有多个 TEXT,IMAGE 和 Button。
如何做,本博客前面有文章讲到。请见这里:FireMonkey ListView 绑定数据显示多个图片_pcplayer的博客-CSDN博客
那么,如果添加的是一个按钮,如何知道用户点了这个按钮?在设计期添加的按钮,其属性面板上,只有 Property 而没有 Event,没有 OnClick 可以选择。
看了半天 ListView 的源代码没找到办法。上网一搜,有了办法:
listview - Working with buttons in a TListView - Stack Overflow
我自己的测试代码
在设计期,给一个 Item 添加两个按钮。其默认的名字分别是:TextButton2 和 TextButton3。
在 ListView1 的属性面板上,切换到 Events 事件页,找到 OnButtonClick,双击,IDE 生成代码框架。代码如下:
procedure TForm1.Button1Click(Sender: TObject);
varAItem: TListViewItem;
beginAItem := ListView1.Items.Add;
end;procedure TForm1.ListView1ButtonClick(const Sender: TObject;const AItem: TListItem; const AObject: TListItemSimpleControl);
begin//以下代码,测试成功。ShowMessage(AObject.Name + ' _ ' + AItem.Index.ToString + ' - ' + (AObject as TListItemTextButton).Text);
end;
上面代码的第一个 Button1Click 是为了测试增加的一个按钮,按一次在 ListView1 里面增加一个 Item。
第二个方法,就是我们要的。实际测试结果,完全符合预期。
实际测试结果,点了哪一条 Item 上面的按钮,显示出来的 AItem.Index 是正确的。也能够正确显示出该按钮的名字(TextButton2 或者 TextButton3),也能够正确显示按钮上的 Text.
上面的代码,对 AObject 进行了类型转换,转换为 TListItemTextButton,否则无法获取到它的 Text 属性。类型转换能够成功,说明这个设计期动态增加的按钮的类型,就是 TListItemTextButton,而不是设计期的属性面板上显示的 TTextButtonObjectAppeaerance.
结论:
如果想知道用户点了哪个按钮,并相应给出动作,这里不是给该按钮找一个 OnClick 而是直接使用 ListView 的 OnButtonClick 事件。在事件里面判断用户点了哪个按钮。
FireMonkey ListView 设计期添加按钮及其 OnClick 事件相关推荐
- odoo中tree视图上面添加按钮并绑定事件
原文:https://blog.csdn.net/qq_42832858/article/details/86735745 1.通过qweb模板给相应模块上的tree视图上添加上⾃定义的按钮. 在's ...
- java 按钮 事件_Java 添加按钮点击事件
展开全部 xml文件代码如下: android:id="@+id/button1" android:layout_width="wrap_content" an ...
- java添加按钮点击事件_如何为odoo 10中的按钮点击事件添加一个java脚本处理程序?...
我想使用java脚本为header中的按钮创建一个处理程序.下面我视图模型给出:如何为odoo 10中的按钮点击事件添加一个java脚本处理程序? inherit_id="web.asset ...
- android eclipse 按钮事件,android eclipse按钮的OnClick事件 - java
我有2个文件:main_activity.xml和home.xml.我在main_activity.xml中做了一个按钮 这是代码片段: xmlns:tools="http://schema ...
- js按钮触发网页提醒_js触发asp.net的Button的Onclick事件应用
在asp.net引入事件驱动之后,在一个页面上很容易解决多个按钮触发不同事件的问题,避免了在asp中需要多个form或者通过js脚本来控制的麻烦. asp.net带来便利的同时,也带来一个问题.在实际 ...
- Iphone NSMutableArray,NSMutableDictionary AND 动态添加按钮
一.NSMutableDictionary NSMutableDictionary * tags: 1.NSMutableDictionary 添加内容: [tags setValue:xxx fo ...
- js触发asp.net的Button的Onclick事件
在asp.net引入事件驱动之后,在一个页面上很容易解决多个按钮触发不同事件的问题,避免了在asp中需要多个form或者通过js脚本来控制 的麻烦. asp.net带来便利的同时,也带来一个问题.在实 ...
- 基于列表框的简单选课窗体开发。编写Windows应用程序,设计实现一个简单选课系统,要求:(1)点击“添加”按钮,将把在第一文本框中的输入的课程名称添加到左边的列表框中,且所添加的课程不能为空,不能
基于列表框的简单选课窗体开发.编写Windows应用程序,设计实现一个简单选课系统,要求: (1)点击"添加"按钮,将把在第一文本框中的输入的课程名称添加到左边的列表框中,且所添加 ...
- listView无需适配器添加数据(写demo快速开发)entries属性的特殊用法
先看下简单的布局代码 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:a ...
- Android Listview中Button按钮点击事件冲突解决办法
今天做项目时,ListView中含有了Button组件,心里一早就知道肯定会有冲突,因为以前就遇到过,并解决过,可惜当时没有记录下来. 今天在做的时候,继续被这个问题郁闷了一把,后来解决后,赶紧来记录 ...
最新文章
- va_list和va_start和((A*)0)-a
- Java面试题库,mysql远程访问权限设置
- 20162328蔡文琛 四则运算第一周
- 一文看懂Python(七)-----断言
- 三次握手,四次挥手的过程??为什么三握??
- 还搞不懂STL的type_traits?从源码来带你一起分析
- java实现qq抢红包_Java实现抢红包功用
- leetcode770. Basic Calculator IV
- 二十年后我发明了保姆机器人作文_我想发明保姆机器人作文500字
- Atitit.404错误解决标准流程and url汉字中文路径404错误resin4 resin chinese char path 404 err解决
- 共轭梯度法的简单直观理解
- DB2 SQLCODE常见错误代码
- 举例Halcon,简述数字图像处理之Blob分析和纹理分析texture_laws
- XP突然弹出“automation 服务器不能创建对象”的有效解决方法--win10专业版
- 微信扫描二维码实现下载app文件
- SPSS创建数据文件
- 人工神经网络的基本原理及其应用
- 基于Python的GUI图形用户界面编程
- 内网架设FTP服务器(serv-u)
- Unity手机震动,Unity -> android 震动