提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
原创|其它|编辑:郝浩|2010-06-01 11:27:31.000|阅读 2277 次
概述:在使用DevExpress 的Ribbon控件过程中,发现cxBarEditItem的属性类型是可变的,并且难以确定。在界面上的显示只不过是TextEdit, ComboBox之类的字符串,而实际对应的对象却完全不是。本文将与你一起分享Ribbon控件如何确定cxBarEditItem的属性类型。
# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>
在使用DevExpress 的Ribbon控件过程中,发现cxBarEditItem的属性类型是可变的,并且难以确定。在界面上的显示只不过是TextEdit, ComboBox之类的字符串,而实际对应的对象却完全不是。要找出真实的对象名称,还是需要花一定的功夫的。
下面就是找对象名称的过程了,首先确保DevBar的Source目录被配置在了Library Path中,因为我们需要不止一次的重新编译控件,不能够只配置dcu的目录。然后,跟据属性编辑器的特点,找到相应的RegisterPropertyEditor方法,搜一下就会在cxBarEditItemReg.pas这个文件里,找到一句代码:
RegisterPropertyEditor(TypeInfo(TcxCustomEditProperties), TcxCustomBarEditItem,
'Properties', TcxBarEditItemPropertiesProperty);
从此代码可以确定,properties属性的编辑器就是TcxBarEditItemPropertiesProperty,然后按着Ctrl点一下这个类名,直接跳转到了属性编辑器的声明部分。我们直接看SetValue()方法。
在里面找到了关键的一句代码:
APropertiesClass := TcxCustomEditPropertiesClass(GetRegisteredEditProperties.FindByClassName(Value));
原来它的填充类是通过一个特定的工厂方法返回的,接着我们就能直接跟进去了,找到FindByClassName这个方法,打下断点。然后运行程序,会看到这个方法被一次次的调用,而其中有一次,就是properties属性调用的了。
在这里,我们无法确定哪一次才是Properties属性调用的,而且由于Dev控件的复杂性,这个方法被反复调用多次。因此,我们略微的修改代码,以满足确定属性的需要。
改动如下:
function TcxRegisteredClasses.FindByClassName(const AClassName: string): TClass;
var
I: Integer;
begin
Result := nil;
for I := 0 to Count - 1 do
begin
if Items[I].ClassName = AClassName then
begin
{$DEFINE DEBUG}
{$IFDEF DEBUG}
if items[i].InheritsFrom(TcxCustomEditProperties) then
begin
WriteLog(AClassName);
end;
{$ENDIF}
Result := Items[I];
Break;
end;
end;
end;
红色的部分就是添加的代码了,WriteLog是一个自定义函数,作用是往C盘根目录下写一个Log文件,文件的内容即继承自TcxCustomEditProperties的类。
程序执行后,打开这个文本一看,就一目了然了。
上面的代码用了编译预处理,如果不需要写文件,就把{$DEFINE DEBUG} 改成 {.$DEFINE DEBUG},如果下一次还需要做此工作,再改回来。
慧都科技作为Developer Express公司目前在中国唯一正式授权的经销商,不仅为DXperience提供了全面的技术支持服务,同时还倾情打造 DevExpress for.net高级培训以及DXperience Winform子控件培训,让您深入了解控件实现效果和常见问题的解决思路,提高开发效率。
另外,为了从根本上帮您解决数据快速录入的问题,慧都控件网倾力打造了EVSolution QuickInput方案。它不仅支持全键盘操作,实现快速光标切换,而且还能进行联想查询、复杂数据搜索查询等功能。另外它还提供了丰富而友好的用户界面和用户体验,您可以根据需要,自动规范化格式,真正将Web软件的优势发挥得淋漓尽致!
据慧都科技透露,DevExpress旗下著名控件套包:DXperience™ Universal Subscription v2010 vol 1已经正式发布,该版本增加了众多新的WPF和Silverlight控件的新功能到整个产品线。众多新功能抢先体验!请关注慧都控件网!
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn
文章转载自:慧都控件网面对“数字中国”建设和中国制造2025战略实施的机遇期,中车信息公司紧跟时代的步伐,以“集约化、专业化、标准化、精益化、一体化、平台化”为工作目标,大力推进信息服务、工业软件等核心产品及业务的发展。在慧都3D解决方案的实施下,清软英泰建成了多模型来源的综合轻量化显示平台、实现文件不失真的百倍压缩比、针对模型中的大模型文件,在展示平台上进行流畅展示,提升工作效率,优化了使用体验。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
行业领先的界面控件开发包,帮助企业构建卓越应用!
DevExpress WPF Subscription高效MVVM开发模式,WPF界面解决方案首选工具,帮助企业实现酷炫动效界面。
DevExpress Silverlight Controls高性价比高实用性的Silverlight用户界面控件套包,拥有大量的示例和帮助文档,开发者能够快速上手!
DevExpress WinForms Subscription为Windows Forms平台创建具有影响力的业务解决方案,高性价比WinForms界面控件套包。
DevExpress DXperience Subscription高性价比的企业级.NET用户界面套包,助力企业创建卓越应用!
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@pclwef.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢