控件自定义属性的问题?急急!!!!
以下是我在Tstatusbar控件的基础上扩展的控件,在控件上加入一个关于的属性,编写代码后可以安装且不出现问题,问题是在窗体上添加此控件后编译,就会出现DesignIntf.dcu或,DesignEditors.dcu找不着,把这两个文件放到控件目录下,又会出现Proxies.dcu单元找不到,且查找整个硬盘都没有Proxies.dcu单元,请高手指点这是错在那里?
unit StatusBarText;
interface
uses
Windows,Messages,SysUtils,Classes,Graphics,Controls,Forms,Dialogs,ComCtrls,
StdCtrls,DesignIntf,DesignEditors;
type
//定义About属性的属性编辑器
TAbout = class(TPropertyEditor)
public
procedure Edit; override;
function GetAttributes: TPropertyAttributes; override;
function GetValue: string; override;
end;
TStatusBarEx = class(TStatusBar)
private
{ Private declarations }
FAbout:TAbout;
protected
{ Protected declarations }
public
{ Public declarations }
constructor Create(AOwner: TComponent); override;
published
property About: TAbout read FAbout;
{ Published declarations }
end;
procedure Register;
implementation
//以下是TAbout中的成员函数的实现
procedure TAbout.Edit;
begin
messagebox(application.handle,pchar('这是一个可扩展的控件包'),'关于扩展编辑控件',mb_iconinformation);
end;
function TAbout.GetAttributes: TPropertyAttributes;
begin
Result := [paDialog, paReadOnly];
end;
function TAbout.GetValue: string;
begin
Result := '(Version 1.0.0)';
end;
constructor TStatusBarEx.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
{为了让TStatusBarEx控件能接受其它控件,必须
使ControlStyle属性(集合类型)包含csAcceptsControls元素}
ControlStyle:= ControlStyle + [csAcceptsControls];
end;
procedure Register;
begin
RegisterComponents('XswEdBar', [TStatusBarEx]);
//为About属性注册属性编辑器
RegisterPropertyEditor(typeInfo(TAbout), nil,'About', TAbout);
end;
end.