1

パラメータを介してオブジェクトのリストを「フォーム2」に送信する「フォーム1」があります。しかし、Delphi はリストを参照として送信するため、「フォーム 1」のリストをクローズすると「フォーム 2」でエラーが発生します。

サンプルとして:

フォーム1:

var list: TObjectList<TPerson>;
    begin

      list  :=  TObjectList<TPerson>.Create();

      Try

      list.Add(TPerson.Create('JOHN', 29));
      list.Add(TPerson.Create('MARK', 27));

      Form2.getList(list);


      Finally
       FreeAndNil(list);
      End;

問題は、「フォーム 1」のリストを解放した後、解放されたオブジェクトを参照することです。

質問は:

リストを参照ではなくコピーとして「フォーム 2」に送信するにはどうすればよいですか?

ありがとう!

4

3 に答える 3