Tstrings型のプロパティを作るには?

解決


はじめまして  2005-11-27 19:09:49  No: 18911

はじめまして。
今コンポーネントを作っているのですが、Tstrings型のプロパティを作るとオブジェクトインスペクタで「Tstrings型にnilは使用できません」と言われてしまいます。

proparty List :Tstrings read FList write SetList

こんな感じのコードで、何が問題なのかわかりません。
よろしくお願いいたします。


junki  2005-11-27 19:33:19  No: 18912

ちゃんとコンストラクタで 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;


はじめまして  2005-12-02 23:29:58  No: 18913

解決しました。ありがとうございます。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加