サンプルコンポーネントのユニットの下に書きました:
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」という名前のプロパティが表示されます。それをダブルクリックすると、Name に保存されている TStringList のアイテムがダイアログに表示されます。
このプロパティを他のコンポーネント (TEdit など) の Font.Name のようにしたいと思います。Name プロパティをクリックすると、リストが表示され、ユーザーはそこからアイテムを選択できます。次に、アイテムがプロパティに割り当てられ、次のように表示されます。オブジェクト インスペクタのプロパティ値。