知识大全 属性和控件编辑器

Posted 属性

篇首语:博观而约取,厚积而薄发。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 属性和控件编辑器相关的知识,希望对你有一定的参考价值。

  Delphi提供了开放的API 是程序员可以增强Delphi IDE的功能 共有 种开放工具的APIs:属性编辑器 控件编辑器 专家/导航和版本控制系统 本文讨论属性编辑器和控件编辑器 给出的例子说明如何写自己的Delphi属性 控件编辑器

  属性编辑器属性编辑器是Delphi IDE的扩展 这听起来非常复杂和困难 但是实际上是很简单的 我们可以为枚举类型构造一个属性编辑器 记得TForm的颜色属性吗?当我们想改变它的值 看到了下拉框中列出了所有的可选值 那就是枚举类型的属性编辑器 我们也同样能做到 只需要几行代码 没什么特别的 注意到程序员并没有写一个属性编辑器 而是通知Delphi使用枚举类型的属性编辑器 为它的枚举特别定义的

  现有的属性编辑器

  在我们搞清楚属性编辑器到底内部是什么之前 先看看Delphi中已有的 开始一个新工程 在implementation中加入"uses DsgnIntf;"编译 打开browser查找TPropertyEditor(只要输入TPrope):

  

  如果没算错的话 在DSGNINTF中注册了至少 个客户属性编辑器(custom property editors) 注意 事实上 还有更多的属性编辑器在其他单元中 例如C:\\DELPHI\\LIB\\PICEDIT DCU 中的TPictureEditor

  TPropertyEditor

  对象察看器为所有的属性提供缺省的编辑 我们可以使用不同的方法重载这种行为 来使用特别的属性编辑器( 种预制的属性编辑器都扩充了对象察看器来处理其属性) 那么 究竟是怎样工作的呢?它是起源一个基类 我们必需重载已达到我们的目的 五个新的Delphi 的方法 其中三个是变量相关的 在编译开关$IFDEF WIN 中一保证一下代码在所有的delphi版本中适用

  TypeTPropertyEditor = classprotectedfunction GetPropInfo: PPropInfo;function GetFloatValue: 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;$IFDEF WIN function GetVarValue: variant;function GetVarValueAt(Index: Integer): variant;$ENDIFprocedure Modified;procedure SetFloatValue(Value: Extended);procedure SetMethodValue(const Value: TMethod);procedure SetOrdValue(Value: Longint);procedure SetStrValue(const Value: string);$IFDEF WIN procedure SetVarValue(const Value: variant);$ENDIFpublicdestructor Destroy; override;procedure Activate; virtual;function AllEqual: Boolean; virtual;procedure Edit; virtual;function GetAttributes: TPropertyAttributes; virtual;function GetComponent(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 Initialize; virtual;$IFDEF WIN procedure Revert;$ENDIFprocedure SetValue(const Value: string); virtual;$IFDEF WIN procedure ValueAvailable: Boolean;$ENDIFproperty Designer: TFormDesigner read FDesigner;property PrivateDirectory: string read GetPrivateDirectory;property PropCount: Integer read FPropCount;property Value: string read GetValue write SetValue;end;

  TPropertyEditor编辑对象察看器中一个或是一串控件的一个属性 属性编辑器根据属性的类型而被创建 由RegisterPropertyEditor注册的类型决定 稍候有一个指示程序员如何使用这些工程的例子 所有的published属性都将出现在对象察看器中 当设计者进行读写属性的值时 其属性编辑器(为这种属性类型的)将被使用

cha138/Article/program/Delphi/201401/30267

相关参考

知识大全 .net WinForm用户控件开发:用户控件复杂属性设置

.netWinForm用户控件开发:用户控件复杂属性设置  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下

知识大全 用Java制作属性编辑器

用Java制作属性编辑器  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  作者长期从事网管软件的开

知识大全 .net WinForm用户控件开发:用户控件下拉式属性设置

.netWinForm用户控件开发:用户控件下拉式属性设置  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一

知识大全 .net WinForm用户控件开发:用户控件的基本属性设置

.netWinForm用户控件开发:用户控件的基本属性设置  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一

知识大全 .net WinForm用户控件开发:用户控件弹出式属性设置

.netWinForm用户控件开发:用户控件弹出式属性设置  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一

知识大全 自定义控件中使用枚举类型的属性

  在控件中定义枚举类型的属性  publicenumDTableStateSelectShowAddnew=SaveAddnew=ShowEdit=SaveEdit=Delete=Show=List

知识大全 使用Exist属性来判断控件是否存在

使用Exist属性来判断控件是否存在  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  可以通过访问

知识大全 调整SqlDataSource控件的DataSourceMode属性的方法

调整SqlDataSource控件的DataSourceMode属性的方法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我

知识大全 GridView控件实现数据项的编辑、更新、取消

GridView控件实现数据项的编辑、更新、取消  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  

知识大全 使用c#(datagrid控件)编辑xml文件

  对xml文件的记录进行删除修改或增加新记录   利用了datagrid控件的sortmand事件对xml里的记录进行排序  email:  &nb