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

解決


Tom  2007-07-25 01:31:06  No: 27187

自作クラスを作って、それを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-25 02:14:48  No: 27188

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


Tom  2007-07-25 03:06:51  No: 27189

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


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

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






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