IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> FireMonkey ListView 设计期添加按钮及其 OnClick 事件 -> 正文阅读

[JavaScript知识库]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);
var
  AItem: TListViewItem;
begin
  AItem := 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 事件。在事件里面判断用户点了哪个按钮。

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-03-08 22:20:01  更:2022-03-08 22:22:26 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 9:50:10-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码