掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
OnClose、OnCloseQuery、OnDestroyの違い (ID:28964)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
メインフォームの場合 Close するとそのまま終了(解放)するので OnClose と OnDestroy の違いがあまり分からないかもしれませんが 以下のようなプログラムで確認してみると理解できるかもしれません。 //--------------------------------------------------------------- unit Unit4; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm4 = class(TForm) Button1: TButton; Button2: TButton; Button3: TButton; Button4: TButton; Memo1: TMemo; Button5: TButton; Button6: TButton; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button4Click(Sender: TObject); procedure Button5Click(Sender: TObject); procedure Button6Click(Sender: TObject); private { Private 宣言 } public { Public 宣言 } end; var Form4: TForm4; implementation uses Unit5; {$R *.dfm} procedure TForm4.Button1Click(Sender: TObject); begin Form5 := TForm5.Create(Self); end; procedure TForm4.Button2Click(Sender: TObject); begin Form5.Show; end; procedure TForm4.Button3Click(Sender: TObject); begin Form5.Close; end; procedure TForm4.Button4Click(Sender: TObject); begin Form5.Free; end; procedure TForm4.Button5Click(Sender: TObject); begin Form5.Hide; end; procedure TForm4.Button6Click(Sender: TObject); begin Form5.Release; end; end. //---------------------------------------------------------------- unit Unit5; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm5 = class(TForm) Button1: TButton; RadioButton1: TRadioButton; procedure FormCreate(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure FormDestroy(Sender: TObject); procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); procedure Button1Click(Sender: TObject); private { Private 宣言 } public { Public 宣言 } end; var Form5: TForm5; implementation uses Unit4; {$R *.dfm} procedure TForm5.Button1Click(Sender: TObject); begin end; procedure TForm5.FormClose(Sender: TObject; var Action: TCloseAction); begin Form4.Memo1.Lines.Add('Close'); end; procedure TForm5.FormCloseQuery(Sender: TObject; var CanClose: Boolean); begin Form4.Memo1.Lines.Add ('CloseQuery'); end; procedure TForm5.FormCreate(Sender: TObject); begin Form4.Memo1.Lines.Add ('Create'); end; procedure TForm5.FormDestroy(Sender: TObject); begin Form4.Memo1.Lines.Add ('Destroy'); end;
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.