掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
動的フレームの再作成でエラー (ID:22535)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
すみません、技術不足せいか正しく質問が理解出来ませんでした^^; とりあえず、書いてみましたが、違っていたらすみません。 まず、気になった点はモーダレスのフォームは、Releaseで必ず解放して下さい。 FreeAndNilで解放するフォームはモーダルの場合です。 あと、インスタンスを一つにしたい場合は、Singletonパターンを使った方が良いです。簡単なサンプルを書いてみました、参考にして下さい。 unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { Private 宣言 } public { Public 宣言 } end; var Form1: TForm1; implementation uses Unit2; {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var a: TForm2; begin a := TForm2.GetInstance(Self); a.Top := 100; a.Left := 100; a.parent := Form1; a.Show; end; end. unit Unit2; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm2 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { Private 宣言 } public { Public 宣言 } class function GetInstance(AOwner: TComponent): TForm2; destructor Destroy; override; end; implementation {$R *.dfm} var Form2: TForm2; procedure TForm2.Button1Click(Sender: TObject); begin Release; end; destructor TForm2.Destroy; begin Form2 := nil; inherited; end; class function TForm2.GetInstance(AOwner: TComponent): TForm2; begin if not Assigned(Form2) then begin Form2 := TForm2.Create(AOwner); end; Result := Form2; end; end.
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.