クラスの開放時にエラーが出る

解決


Tom  2007-07-24 16:31:06  No: 27187  IP: 192.*.*.*

自作クラスを作って、それをObjectListで管理しています。
グローバル変数に、
var Classes: TObjectList;として、

procedure TForm1.FormShow(Sender: TObject);
begin
  Classes := TObjectList.Create;
end;

という風に宣言しました。
CreateしたものはFreeするべきらしいので、
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Classes.Free;
end;

と、開放しています。

自作クラスもCreate、Freeで生成、開放しています。

自作クラスをFreeしたときだけ、アプリケーションの終了時に無効なポインタ操作のエラーが出ます。
Classes.Freeを削除した場合はそんなエラーが出ないのですが。

編集 削除
Basser  2007-07-24 17:14:48  No: 27188  IP: 192.*.*.*

TObjectList.OwnsObjectsプロパティが True だからでは?
この場合、デストラクタで呼び出されるClearメソッドが実行時に、
管理している自作クラスも破棄されます。

編集 削除
Tom  2007-07-24 18:06:51  No: 27189  IP: 192.*.*.*

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

編集 削除