【FireMonkey】StyleBook使用方法
近期在开发一个团队文档管理工具,使用Embarcadero的XE2-C++builder进行界面开发,使用Firemonkey框架。
而这个框架十分有趣!可能吸引界面开发者的就是这个StyleBook;
首先先附上一个小范例
http://docwiki.embarcadero.com/CodeSamples/en/CustomListBox_Sample
这个小东西就是在Listbox里面增加自定义风格记录
从图上可以看见相应的效果。一条记录里面包含checkbox、text、button这些控件,而且checkbox并非原生的控件(经过研究是自己添加的一个Layout)。
而这个范例揭示了这个框架的一些很有意思的东西:
1.我们可以通过自由开发组合相应的控件来加入到Listbox等列表控件里面。
2.开发十分方便,而且无需创建自定义控件。
3.使用也十分方便,使用Binding数据绑定来做到相关操作:http://www.cnblogs.com/del/archive/2011/10/01/2197041.html
这也就为开发界面及相应的接口大大提速!
而我这里着重提及上述范例的开发方法(毕竟本项目使用到该技术)
首先要加入TStyleBook控件(在测试过程中,我发现如果加入两个TStyleBook控件时仅仅调用第一个TSB控件,这里的原由还要研究!)
然后双击进入这个控件在里面增加Style
在编辑前先给Style添上名字,具体方法:在第一层(最顶层的控件里有个属性StyleName!)
而编辑Style方法是否简单,其实就是组合控件的过程,直接拖拉控件进行组合!其中有层次关系,所以在组合时候要注意!
(最右边有三个按钮
仅知道第三个是删除该控件,前两个不清楚!)
编辑完成后,需要给风格中的每个控件添加BindingName,具体方法:对每个控件的BindingName属性修改!
控件的其余属性与一般开发时控件属性操作一致!
如何调用这个已完成的Style?
以ListBox为例:
则Listbox中的创建的Item就类似于风格中的组合控件一样,而排版方式与原来的Listbox记录排版方式的一致!
而我们同样也可以在Listbox的属性StyleLookup中添加风格名,则创建出来的item与上述方法效果一致!
//-------------------------------
而这种方法会带来很多十分有趣的东西!
//-------------------------------
补充:在StyleBook创建组合控件风格时,每个控件中有个关键属性为HitTest(敲击测试),如果为true则在加入item后点击这个item时可能不会立即跳入item的click函数,而是会跳入组合控件中的某个控件click函数!
【FireMonkey】StyleBook使用方法的更多相关文章
- Delphi XE2 之 FireMonkey 入门(1)
Delphi XE2 的 FireMonkey 是跨平台的, 暂时只准备看看它在 Windows 下(我是 32 位 Win7)的应用情况. 很新的东西, 相信有了它, 以后的界面将会更灵活.漂亮, ...
- javaSE27天复习总结
JAVA学习总结 2 第一天 2 1:计算机概述(了解) 2 (1)计算机 2 (2)计算机硬件 2 (3)计算机软件 2 (4)软件开发(理解) 2 (5) ...
- FireMonkey 保存图片到JPG的方法 BMP转JPG
习惯VCL的做法了,到了FireMonkey里面,好像查不到单独的JPEG单元了,不少朋友就郁闷如何处理JPG了,这么大件事,不可能没有处理方法的,具体就请看代码: uses FMX.Surfaces ...
- Delphi XE的firemonkey获取当前文件所在路径的方法
Delphi XE的firemonkey获取当前文件所在路径的方法 在之前,我们知道有三种方法: ExtractFilePath(ParamStr(0)) ExtractFilePath(Applic ...
- firemonkey获取当前文件所在路径的方法
在之前,我们知道有三种方法: ExtractFilePath(ParamStr(0)) ExtractFilePath(Application.ExeName) GetCurrentDir + '\' ...
- FMX有两种消息处理的实现方式,一种是用TMessageManager来实现自定义的消息,另外一种象TEdit中的实现,直接声明消息方法(firemonkey messaging)
看FMX代码,发现有两种消息处理的实现方式,一种是用TMessageManager来实现自定义的消息,另外一种象TEdit中的实现,直接声明消息方法. 早前,看过文章说TMessageManage ...
- 在Vcl和FireMonkey应用程序中启用TXMLDocument 的XPath(selectNode,selectNodes)方法
该TXMLDocument的类让你来操作VCL和FireMonkey应用程序的XML文件,但这个类没有实现直接的方式来调用XPath的相关方法(selectNode,的selectNodes),所以你 ...
- Delphi XE2 之 FireMonkey 入门(29) - 数据绑定: TBindingsList: 表达式的 Evaluate() 方法
Delphi XE2 之 FireMonkey 入门(29) - 数据绑定: TBindingsList: 表达式的 Evaluate() 方法 TBindingsList 中可能不止一个表达式, 通 ...
- Firemonkey TComboBox 下拉菜单字型修改方法 (D10)
在 FMX 下的 TComboBox 下拉菜单字型修改有二种方法: uses FMX.Pickers; 使用 Style,需先设定好 Style 后,再指定预设项的 Style,方法如下: proce ...
随机推荐
- linux删除乱码文件[转载]
一些乱码文件不可以通过普通的rm命令进行管理.可以通过删除i节点的方式删除. [root@192_168_100_35 musicwap]# ls??,?K?k?ͨa*.?J]?k?Φ??P???Z? ...
- Developer Express控件gridcontrol中gridView的某一个单元格是否可以自由输入
场景:在Developer Express控件gridcontrol中的gridView中,当医生开的临时医嘱的医嘱类型为"中草药","计价总量"单元格不可以自 ...
- Restful Framework (四)
目录 一.分页 二.视图 三.路由 四.渲染器 一.分页 回到顶部 试问如果当数据量特别大的时候,你是怎么解决分页的? 方式a.记录当前访问页数的数据id 方式b.最多显示120页等 方式c.只显示上 ...
- python资源合集
Python 官网: https://www.python.org/ Python2.7 doc: https://docs.python.org/2/ Python Package User Gui ...
- 【hdoj_2570】迷障
题目:http://acm.hdu.edu.cn/showproblem.php?pid=2570 思路:贪心法.要求在浓度不超标的情况下,解药的最大体积.由于体积相同,可以先对浓度排序,然后从浓度小 ...
- 基于node的前端页面实时更新。呦吼~
学习了gulp,webpack后越发觉得前端开发万分的有趣,首当其冲的就是解决了狂按f5的尴尬. 当我们按下ctrl+s保存后页面自动更新了,我就觉得我f5键在隐隐的发笑. 1.node_npm_li ...
- KMP算法-->深入浅出
说明: 在网上查了各种资料,终于对KMP算法有了透彻的了解,都说KMP特简单,我咋没有察觉呢?难道是智商不在线?或许都是骗纸? 还是进入正题吧,整理整理大佬的blog KMP算法简介: KMP算法是一 ...
- AttributeError: 'ForeignKey' object has no attribute 're' 解决办法
使用 field_object.rel.model.objects.filter(**db_condition) 报错 forekey中存在rel,为什么不能调用? 通过以下语句观察 print(fi ...
- 《深入理解Android2》读书笔记(二)
接之前那篇<深入理解Android2>读书笔记(一) 下面几篇来分别详细分析 Binder类作为服务端的Bn的代表,BinderProxy类作为客户端的Bp的代表,BinderIntern ...
- List 集合中 均匀的取七个点 的值
场景: 一个未知 长度的 List 集合,可能 长度为7,10,50,100, 等等 这个时候 ,我们需要在 集合中 均匀的取七个点: 思路: n=6; int size = list.Size(); ...