モードレスサブフォームの生成と破棄
|
88 |
ModelessSubForm |
動作確認 |
Delphi2007 |
更新日 |
2008/06/23(月) |
Form1からForm2を開くときにモードレスなサブフォームとして
ボタンクリック時に生成し閉じた時に破棄するコードです。
複数個のForm2を使う事もできますし、
単一のサブフォームを開く場合にも使うことができます。
────────────────────
//Unit1側
//ボタンを押すことでForm2を複数生成することができる
procedure TForm1.Button1Click(Sender: TObject);
begin
TForm2.Create(Self).Show;
end;
//ボタンを押してもForm2が存在すれば生成しないので
//Form2が一つだけしか存在しないように開く事ができる
procedure TForm1.Button2Click(Sender: TObject);
begin
if Assigned(Form2) then Exit;
Form2 := TForm2.Create(Self);
Form2.Show;
end;
////////////////////////////////////////////////////////////
//Unit2側
procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
if Assigned(Form2)
and (Form2=Self) then Form2 := nil;
end;
────────────────────
TForm2のFormCloseイベントで
Action := caFree;
とすることでFormが破棄されて
そのときにnilを代入しているので
破棄された事を感知することもできます。
|