下面是一个字符串列表属性编辑器的例子,具体各个方法是做什么的可以参看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