我为示例组件编写了以下单元:
unit Test;
interface
uses
System.SysUtils, System.Classes, System.Variants, VCL.Dialogs;
type
TTest = class(TComponent)
private
fName: TStringList;
{ Private declarations }
public
{ Public declarations }
constructor Create(AOwner: TComponent); Override;
destructor Destroy; override;
published
{ Published declarations }
property Names: TStringList read fName;
end;
procedure Register;
implementation
procedure Register;
begin
RegisterComponents('Samples', [TTest]);
end;
{TTest }
constructor TTest.Create(AOwner: TComponent);
begin
inherited;
fName := TStringList.Create;
for i:= 1 to 100 do
fName.Add(IntToStr(i));
end;
destructor TTest.Destroy;
begin
fName.Free;
inherited;
end;
end.
现在,当我在 Delphi 上安装它时,在 Object Inspector 中我有一个名为“Names”的属性,我应该双击它,然后一个对话框显示 TStringList 存储在 Name 上的项目。
我想在其他组件(如 TEdit 等)中将此属性设为 Font.Name,当单击 Name 属性时,会显示一个列表,用户可以从中选择一个项目,然后将该项目分配给该属性并显示为对象检查器中的属性值。