Sender 转换TButtonItem TCategoryButtons
http://codeverge.com/embarcadero.cppbuilder.using/using-sender-to-determine-which/1068317
http://qc.embarcadero.com/wc/qcmain.aspx?d=70595
Using *Sender to determine which button triggered even
Sender 转换到TButtonItem
不能
TButtonItem *bi = static_cast<TButtonItem*>(Sender);
改用下面的方式
TCategoryPanel *CategoryPanel;
for (int i = ; i < TreeView1->Items->Count; i++)
{
if (TreeView1->Items->Item[i]->Level == )
{
CategoryPanel = new TCategoryPanel(CategoryPanelGroup1);
CategoryPanel->PanelGroup = CategoryPanelGroup1;
CategoryPanel->Caption = TreeView1->Items->Item[i]->Text;
}
TCategoryButtons * CategoryButtons;
CategoryButtons = new TCategoryButtons(CategoryPanel);
CategoryButtons->Parent = CategoryPanel;
CategoryButtons->Align = alTop;
CategoryButtons->Height = TreeView1->Items->Item[i]->Count * (this->Canvas->TextHeight("a") + );
CategoryButtons->ButtonOptions << boFullSize;
CategoryPanel->Height = CategoryButtons->Height + ;
TButtonCategory *ButtonCategory;
ButtonCategory = new TButtonCategory(CategoryButtons->Categories);
TButtonItem *bi;
// CategoryButtons->Categories->Items[0]->Items //TButtonCollection*
if (TreeView1->Items->Item[i]->HasChildren)
{
for (int j = ; j < TreeView1->Items->Item[i]->Count; j++)
{
bi = new TButtonItem(CategoryButtons->Categories->Items[]->Items);
bi->Caption = TreeView1->Items->Item[i]->Item[j]->Text;
}
}
}
CategoryPanelGroup1->CollapseAll();
void __fastcall TForm28::CategoryButtons1Categories0Items0Click(TObject *Sender)
{
TCategoryButtons *cb = static_cast<TCategoryButtons*>(Sender);
TButtonItem *bi = static_cast<TButtonItem*>(cb->SelectedItem);
Caption = bi->Caption;
}
CategoryButtons.BorderStyle=bsNone
CategoryButtons.ButtonHeight=40
CategoryButtons.ButtonWidth=100
Sender 转换TButtonItem TCategoryButtons的更多相关文章
- .Net 中的反射(序章) - Part.1
引言 反射是.Net提供给我们的一件强力武器,尽管大多数情况下我们不常用到反射,尽管我们可能也不需要精通它,但对反射的使用作以初步了解在日后的开发中或许会有所帮助. 反射是一个庞大的话题,牵扯到的知识 ...
- 从零开始学ios开发(五):IOS控件(2),Slider
下面继续学习ios的其他控件,这次会使用到的控件有Slider,当然还有一些之前已经使用过的控件Label. 这次我们不新建一个project了,当然如果你愿意重新创建一个新的项目也完全可以,我们还是 ...
- 02-UIKit控件、MVC
目录: 一.控件使用 二.动态类型和静态类型 三.MVC 四.UIAlertView对话框 回到顶部 一.控件使用 1 事件源,事件处理方法有一个参数传进来,那个参数就是触发这个事件的时间源. UIS ...
- NET控件Designer架构设计
总体结构 Designer总体上由三大部分组成:View,ViewModel和Model,这个结构借鉴了流行的MVVM模式.这三部分的职责分工是: View 负责把ViewModel以图形的方式展现出 ...
- Solidity的三种合约间的调用方式 call、delegatecall 和 callcode
0x00 前言 Solidity(http://solidity.readthedocs.io/en/v0.4.24/) 是一种用与编写以太坊智能合约的高级语言,语法类似于 JavaScript. S ...
- c# 共享事件处理程序
使用同一个方法来处理多个Button实例的Click事件. 1.全选所有的Button,在事件添加中的Click点击事件中添加处理函数. 2.假如一个label控件用于显示按钮按下输出文本 3.处理函 ...
- WP8.1学习系列(第十九章)——事件和路由事件概述
我们将介绍在使用 C#.Visual Basic 或 Visual C++ 组件扩展 (C++/CX) 作为编程语言并使用 XAML 进行 UI 定义时,针对 Windows 运行时应用的事件的编程概 ...
- tab键、快捷键、默认按钮、小数点输入的使用--四则运算
1. 窗体Tab键的顺序设置 选中窗体-视图-tab键顺序 label不适用tab键 2. 热键设置和快捷键设置 热键:无论光标在哪都可以 快捷键:出现界面后才能按 添加label 更改label的T ...
- DataTable 转换成 Json的3种方法
在web开发中,我们可能会有这样的需求,为了便于前台的JS的处理,我们需要将查询出的数据源格式比如:List<T>.DataTable转换为Json格式.特别在使用Extjs框架的时候,A ...
随机推荐
- java类库 java API jar包 C语言函数库
翁凯说:java的强大是因为类库的强大 C/C++强大是因为函数库 在程序中用到系统提供的标准函数库中的输入输出函数时 应在程序的开头写上一行:#include"stdio.h"或 ...
- git代码回退
情况1.还没有push可能 git add ,commit以后发现代码有点问题,想取消提交,用: reset git reset [--soft | --mixed | --hard] eg: gi ...
- Jsonpath的写法
JSONPath - 是xpath在json的应用. xml最大的优点就有大量的工具可以分析,转换,和选择性的提取文档中的数据.XPath是这些最强大的工具之一. 如果可以使用xpath来解析js ...
- PHP双引号的隐患
PHP很多语法特性会让攻击者有机可乘,例如PHP会检测双引号中的变量.执行如下代码: function test() { echo "abc"; } echo "${@t ...
- C#中委托如何使用?(转帖)
1.委托概述委托是C#中新加入的一个类型,可以把它想作一个和Class类似的一种类型,和使用类相似,使用一个委托时,需要两个步骤,首先你要定义一个委托,就像是定义一个类一样:然后,你可以创建一个或多个 ...
- 洛谷 4389 付公主的背包——多项式求ln、exp
题目:https://www.luogu.org/problemnew/show/P4389 关于泰勒展开: https://blog.csdn.net/SoHardToNamed/article/d ...
- jmeter ---模拟http请求/发送gzip数据
jmeter中get请求gzip数据的方法: 在jmeter线程组中添加“http信息头管理器”,并添加名称:Accept-Encoding值: gzip,deflate注:HTTP信息头Accept ...
- 使用JMeter代理服务器录制APP脚本
重点:证书的安装,需要将Jmeter安装目录下证书传送到手机,使用手机安装(不要用QQ传送给手机,手机提示无法安装,可使用网盘方式传送,可成功安装证书) (出现该错误时,需安装证书) 简单的配置教程如 ...
- DBA的规范
DBA操作规范 1.涉及业务上的修改/删除数据,在得到业务方.CTO的邮件批准后方可执行,执行前提前做好备份,必要时可逆. 2.所有上线需求必须走工单系统,口头通知视为无效. 3.在对大表做表 ...
- gdb 调试(查看运行时数据)(五)
查看栈信息 当程序被停住了,首先要确认的就是程序是在哪儿被断住的.这个一般是通过查看调用栈信息来看的.在gdb中,查看调用栈的命令是backtrace,可以简写为bt. (gdb) bt #0 ...