掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
オブジェクトの解放 (ID:27441)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
var i,j : integer; SG : TStringGrid; DummyG : TStringGrid; begin SG := TStringGrid.Create(self); DummyG := TStringGrid.Create(Self); with SG do begin Name := 'aaa'; SG.Cells[3,3] := 'a'; end; ShowMessage(DummyG.Cells[3,3] + '|' + SG.Cells[3,3]); SG := DummyG; ShowMessage(DummyG.Cells[3,3] + '|' + SG.Cells[3,3]); SG.Cells[3,3] := 'a'; ShowMessage(DummyG.Cells[3,3] + '|' + SG.Cells[3,3]); ShowMessage(DummyG.Name + '|' + SG.Name); i := 1; j := 2; i := j; i := 1; ShowMessage(IntToStr(i) + '|' + IntToStr(j)); これを実行すると |a | a|a | 1|2 という結果になりました。 で、その後に var i : integer; begin for i := 0 to Form1.ComponentCount - 1 do begin ShowMessage('*'+Form1.Components[i].Name); end; end; を実行すると *aaa * となりました。 これでは例えば上記のプログラム実行後に SG.Free DummyG.Free(エラーになりますが) としても始めSGとして作ったStringGridは解放されません。 TStringListのようにownerを持たないオブジェクトをこのように代入してしまった場合、どうやって解放すればいいのでしょうか?
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.