記事カテゴリ

ユーザー機能


 2024年4月25日(木) 17:18 JST

[Delphi] フォームの表示完了時

  • 投稿者:
  • 表示回数
    9,079

フォームを表示しているときに起こるイベントには「OnCreate」「OnShow」「OnActivate」などがありますが、表示し終わったときのイベントがありません。 これを取得するには「CMShowingChanged」メッセージをトラップします。(このメッセージを知るまでは、OnCreateで独自メッセージをポストし、トラップしてました。(^o^;))
実際のコードは以下のようになります。

type
  TForm1 = class(TForm)
private
  { Private 宣言 }
  (略)
  procedure CMShowingChanged(var Message: TMessage); message CM_SHOWINGCHANGED;
  (略)
end;

procedure TForm1.CMShowingChanged(var Message: TMessage);
begin
  inherited;  // 通常の CMShowingChagened をまず実行
  if (Visible) then
  begin
    Update; // 完全に描画
    // 実際の処理を記入
  end;
end;

トラックバック

このエントリのトラックバックURL:
https://www.blackcat.xyz/trackback.php/ProgramingFAQ_del0049

以下のコメントは、その投稿者が所有するものでサイト管理者はコメントに関する責任を負いません。