彩票走势图

Ribbon控件如何确定cxBarEditItem的属性类型

原创|其它|编辑:郝浩|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

文章转载自:慧都控件网

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
相关产品
DevExpress Universal Subscription

行业领先的界面控件开发包,帮助企业构建卓越应用!

DevExpress WPF Subscription

高效MVVM开发模式,WPF界面解决方案首选工具,帮助企业实现酷炫动效界面。

DevExpress Silverlight Controls

高性价比高实用性的Silverlight用户界面控件套包,拥有大量的示例和帮助文档,开发者能够快速上手!

DevExpress WinForms Subscription

为Windows Forms平台创建具有影响力的业务解决方案,高性价比WinForms界面控件套包。

DevExpress DXperience Subscription

高性价比的企业级.NET用户界面套包,助力企业创建卓越应用!

title
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP