Info(ByteBool), nil, '''''''', TBoolPropertyEx); RegisterPropertyEditor(TypeInfo(WordBool), nil, '''''''', TBoolPropertyEx); RegisterPropertyEditor(TypeInfo(LongBool), nil, '''''''', TBoolPropertyEx); RegisterPropertyMapper(SetMapper); end;
写完注册代码后,我们要作的只是把新的属性编辑器添加到包中,然后在Delphi中安装。关闭所有的窗体,确保原来的属性编辑器全部被释放。新建一个窗体,我们就可以看到如下图所示的属性编辑器了,看起来还是很漂亮的
其它新的属性编辑器特性
这里我们主要讲了自绘画的属性编辑器,但Delphi 5还提供了许多其它的新特性,感兴趣的朋友可以自己进行一下研究。
比如新增的GetVisualValue方法类似于GetValue方法,但它可以用来返回一个比简单转换的字符串更有意义的描述字符串(但不能用来编辑)。有的时候,我们可能想用更有意义的字符串,而不是简单的转换来表示属性值,这时我们通过重载GetVisualValue方法来返回一个用于显示的字符串,用GetValue方法来返回一个用于编辑的字符串。
还有一个新的标志paFullWidthName置位的话,对象编辑器会完全显示属性名,而不会给属性值留出空间。第一眼的印象是这好象是一个很奇怪的特性,但很多控件都有类似于About的属性(尤其是商业控件),这些属性(是PaDialog类型的)只是在左边显示一个带省略号的按钮。 点击属性编辑器只是显示一个关于的对话框,它没有什么特别有意义的值,这时paFullWidthName标志就有用了,重载PropDrawName 方法我们可以把自己公司的Logo,显示在属性名的旁边。
最后,我想要发发牢骚,Borland的这些新的特性从来就没有很好的文档(这点上borland比微软可是差了好几个数量级),所以要想研究的话,只能是多看看Delphi带的源代码了:(,不过不管怎么说,使用这些新的特性我们可以作出非常Cool的编辑界面来,这才是我们最关心的。
上一页 [1] [2] [3] |