2022年属性和控件编辑器Delphi教程.docx
《2022年属性和控件编辑器Delphi教程.docx》由会员分享,可在线阅读,更多相关《2022年属性和控件编辑器Delphi教程.docx(8页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、2022年属性和控件编辑器Delphi教程 Delphi供应了开放的API,是程序员可以增加Delphi IDE的功能。共有4种开放工具的APIs:属性编辑器、控件编辑器、专家/导航和版本限制系统。本文探讨属性编辑器和控件编辑器,给出的例子说明如何写自己的Delphi属性、控件编辑器。 属性编辑器 属性编辑器是Delphi IDE的扩展。这听起来特别困难和困难,但是事实上是很简洁的。我们可以为枚举类型构造一个属性编辑器。记得TForm的颜色属性吗?当我们想变更它的值,看到了下拉框中列出了全部的可选值。那就是枚举类型的属性编辑器,我们也同样能做到,只须要几行代码,没什么特殊的。留意到程序员并没有
2、写一个属性编辑器,而是通知Delphi运用枚举类型的属性编辑器,为它的枚举特殊定义的。现有的属性编辑器在我们搞清晰属性编辑器究竟内部是什么之前,先看看Delphi中已有的。起先一个新工程,在implementation中加入uses DsgnIntf;编译,打开browser查找TPropertyEditor(只要输入TPrope): 假如没算错的话,在DSGNINTF中注册了至少21个客户属性编辑器(custom property editors),留意:事实上,还有更多的属性编辑器在其他单元中,例如C:DELPHILIBPICEDIT.DCU.中的TPictureEditor。TPrope
3、rtyEditor对象察看器为全部的属性供应缺省的编辑。我们可以运用不同的方法重载这种行为,来运用特殊的属性编辑器(21种预制的属性编辑器都扩充了对象察看器来处理其属性)。那么,原委是怎样工作的呢?它是起源一个基类,我们必需重载已达到我们的目的。五个新的Delphi 2.0的方法-其中三个是变量相关的-在编译开关{$IFDEF WIN32}中一保证一下代码在全部的delphi版本中适用。TypeTPropertyEditor = classprotectedfunction GetPropInfo: PPropInfo;function GetFloatValue:
4、 Extended;function GetFloatValueAt(Index: Integer): Extended;function GetMethodValue: TMethod;function GetMethodValueAt(Index: Integer): TMethod;function GetOrdValue: Longint;function GetOrdValueAt(Index: Integer): Longint;function GetStrValue: string;function GetStrValueAt(Index: Integer): string;&
5、#123;$IFDEF WIN32}function GetVarValue: variant;function GetVarValueAt(Index: Integer): variant;{$ENDIF}procedure Modified;procedure SetFloatValue(Value: Extended);procedure SetMethodValue(const Value: TMethod);procedure SetOrdValue(Value: Longint);procedure SetStrValue(const
6、Value: string);{$IFDEF WIN32}procedure SetVarValue(const Value: variant);{$ENDIF}publicdestructor Destroy; override;procedure Activate; virtual;function AllEqual: Boolean; virtual;procedure Edit; virtual;function GetAttributes: TPropertyAttributes; virtual;function GetCom
7、ponent(Index: Integer): TComponent;function GetEditLimit: Integer; virtual;function GetName: string; virtual;procedure GetProperties(Proc: TGetPropEditProc); virtual;function GetPropType: PTypeInfo;function GetValue: string; virtual;procedure GetValues(Proc: TGetStrProc); virtual;procedure Initializ
8、e; virtual;{$IFDEF WIN32}procedure Revert;{$ENDIF}procedure SetValue(const Value: string); virtual;{$IFDEF WIN32}procedure ValueAvailable: Boolean;{$ENDIF}property Designer: TFormDesigner read FDesigner;property PrivateDirectory: string read Ge
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022 属性 控件 编辑器 Delphi 教程
限制150内