2015年05月29日

Frameの Create, Destroy イベント


Frame には、OnCreate/OnDestroyイベントがないが下記のように、constructor/Destroyを定義すれば、同じようなイベントはかける。

-------------------------------------------------------------------------------------
type
  TFrameUnit = class(TFrame)
  private
    { Private declarations }
  public
    { Public declarations }
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
  end;
-------------------------------------------------------------------------------------
ただし、発生タイミングに注意が必要。
Frameのimplementationを下記のように定義。
-------------------------------------------------------------------------------------
constructor TFrameUnit.Create(AOwner: TComponent);
begin
  inherited;
  OutputDebugString(PChar('◎TFrameUnit.Create◎'));
end;
destructor TFrameUnit.Destroy;
begin
  OutputDebugString(PChar('◎TFrameUnit.Destroy◎'));
  inherited;
end;
initialization
  OutputDebugString(PChar('◎initialization◎'));
finalization
  OutputDebugString(PChar('◎finalization◎'));
end.
-------------------------------------------------------------------------------------
Formにも下記のように定義して確認
-------------------------------------------------------------------------------------
procedure TFormUnit.FormCreate(Sender: TObject);
begin
  OutputDebugString(PChar('○TFormUnit.FormCreate○'));
end;
procedure TFormUnit.FormDestroy(Sender: TObject);
begin
  OutputDebugString(PChar('○TFormUnit.FormDestroy○'));
end;
initialization
  OutputDebugString(PChar('○initialization○'));
finalization
  OutputDebugString(PChar('○finalization○'));
end.
-------------------------------------------------------------------------------------

デバッグ出力: ◎initialization◎ プロセス Project1.exe (3656)
デバッグ出力: ○initialization○ プロセス Project1.exe (3656)
デバッグ出力: ◎TFrameUnit.Create◎ プロセス Project1.exe (3656)
デバッグ出力: ○TFormUnit.FormCreate○ プロセス Project1.exe (3656)

デバッグ出力: ○TFormUnit.FormDestroy○ プロセス Project1.exe (3656)
デバッグ出力: ◎TFrameUnit.Destroy◎ プロセス Project1.exe (3656)
デバッグ出力: ○finalization○ プロセス Project1.exe (3656)
デバッグ出力: ◎finalization◎ プロセス Project1.exe (3656)
となる。

posted by しんくそふと at 16:16| Comment(0) | TrackBack(0) | おぼえ
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
※ブログオーナーが承認したコメントのみ表示されます。
この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/135458385
※ブログオーナーが承認したトラックバックのみ表示されます。

この記事へのトラックバック