TObjectListにオブジェクトを追加していくには?

解決


NES  2004-05-16 10:58:02  No: 9017

独自のオブジェクトクラスを作成し、TObjectListに追加していっているのですが
複数個の追加がうまくいきません。

NewData: NewObject  //Form1のCreateで作成、Destroyで開放
List: TObjectList;

procedure Form1.AddDataClick(Sender: TObject);
begin
  with NewData do
  begin
    Title := 指定した値;
    Text := 指定した値;
  end;
  List.Add(NewData);
end;

このようにプログラムして、実行するたびにListに新しいデータが追加されていくのを期待していたのですが
いくつデータを追加していっても、List内のどのデータもすべて同じメモリを参照してるようです。
どのようにプログラムすればそれぞれのデータが独自の値を保持できるようになるのでしょうか。


ふぐちゃん  2004-05-16 11:31:20  No: 9018

> NewData: NewObject  //Form1のCreateで作成、Destroyで開放

List: TObjectList;

procedure TForm1.AddDataClick(Sender: TObject);
var
  NewData: NewObject;
begin
  NewData := NewObject.Create;
  with NewData do
  begin
    Title := 指定した値;
    Text  := 指定した値;
  end;
  List.Add(NewData);
end;


NES  2004-05-17 01:11:05  No: 9019

ありがとうございます、解決しました。
TObjectListは自動でオブジェクトを開放してくれるんですね。


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

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






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