掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
自身を含む複数フォームの生成と破棄 (ID:22969)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
Notification、そういえばコンポーネントを作るとき お世話になっていたメソッドでしたね。 サンプルを動かしてみましたが、フォームの再生成でエラーが出ます。 動かしたときのサンプルです。 ResetプロパティがTrueのときは、Form2が破棄された後 再度生成を行えられれば解決なのですが どうもNotificationイベント中には、まだForm2が存在しているようで 「Form2はすでに存在します」 と名前がまだ残っているというエラーメッセージが出ます。 生成したFormのNameを毎回書き換えるような仕組みにすることで 解決はできるのですが Form2が破棄されていれば、エラーは出ないはずなので気になります。 もちろんForm2のCloseイベントで Action := caFree;やReleaseは しています。 もう少しだけお知恵をお貸し下さい。 ---------------------------------------------------------------- procedure TForm1.FormCreate(Sender: TObject); begin Application.ShowMainForm := False; FForm2 := TForm2.Create(Self); FForm2.Show; end; procedure TForm1.Notification(AComponent: TComponent; Operation: TOperation); begin inherited; if (Operation = opRemove) then begin if(AComponent is TForm2) then begin FForm2 := nil; if FReset then begin FForm2 := nil; FReset := False; FForm2 := TForm2.Create(Self); FForm2.Show; end else begin Application.Terminate; end; end; end; end;
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.