はじめまして。
今コンポーネントを作っているのですが、Tstrings型のプロパティを作るとオブジェクトインスペクタで「Tstrings型にnilは使用できません」と言われてしまいます。
proparty List :Tstrings read FList write SetList
こんな感じのコードで、何が問題なのかわかりません。
よろしくお願いいたします。
ちゃんとコンストラクタで FList := TStringList.Create; を実行してますか?
こんな感じです。
implementation
{$R *.dfm}
type
TMyClass = class(TComponent)
private
FList: TStrings;
procedure SetList(value: TStrings);
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
property List :TStrings read FList write SetList;
end;
constructor TMyClass.Create(AOwner: TComponent);
begin
inherited;
FList := TStringList.Create;
end;
destructor TMyClass.Destroy;
begin
FList.Free;
inherited;
end;
procedure TMyClass.SetList(value: TStrings);
begin
FList.Assign(value);
end;
var
L:TMyClass;
procedure TForm1.FormCreate(Sender: TObject);
begin
L := TMyClass.Create(self);
L.List.Add('0000');
L.List.Add('1111');
L.List.Add('2222');
L.List.Add('3333');
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Caption := L.List[2]
end;
解決しました。ありがとうございます。
ツイート | ![]() |