TPropertyEditor 怎样使用(200分)

  • 主题发起人 主题发起人 ftop1
  • 开始时间 开始时间
F

ftop1

Unregistered / Unconfirmed
GUEST, unregistred user!
TPropertyEditor 怎样使用,能否给个例子
 
Every property editor must be a subclass of the abstract TPropertyEditor class, which is
defined in the DesignEditors unit of the ToolsApi and provides a standard implementation
for the IProperty interface.

《Mastering Delphi6》Chapter 11: Creating Components中有实例。
《Mastering Delphi6》可以在这里下载。http://delphi.mychangshu.com/
 
你说的网站连接不上,能否给个例子
 
下面是一个字符串列表属性编辑器的例子,具体各个方法是做什么的可以参看Delphi帮助
查找“TPropertyEditor”那里详细说明了每个东西是做什么的。
TGridLayoutNameProperty = class(TStringProperty)
public
function GetAttributes: TPropertyAttributes; override;
procedure GetValueList(List: TStrings);
procedure GetValues(Proc: TGetStrProc); override;
end;

{ TGridLayoutNameProperty }

function TGridLayoutNameProperty.GetAttributes: TPropertyAttributes;
begin
Result := [paValueList, paSortList];
//指明你的属性编辑器的Attribute,这里我的是字符串列表,并排序
end;

procedure TGridLayoutNameProperty.GetValueList(List: TStrings);
begin
//在这里写你的字符串列表的取得方式
end;

procedure TGridLayoutNameProperty.GetValues(Proc: TGetStrProc);
var
I: Integer;
Values: TStringList;
begin
Values := TStringList.Create;
try
GetValueList(Values);
for I := 0 to Values.Count - 1 do
Proc(Values);
finally
Values.Free;
end;
end;

注册属性编辑器:
{ PropertyEditor }
RegisterPropertyEditor(TypeInfo(string), {你的类名}, '你的类的属性名', {属性编辑器类名});

其实更好的学习办法是看Delphi的源代码或看别人的源代码。
如/Program Files/Borland/Delphi6/Source/Property Editors/DBReg.pas
 
我给你个例子 http://www.playicq.com/default.asp
 
多人接受答案了。
 
后退
顶部