フォームを表示しているときに起こるイベントには「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;
以下のコメントは、その投稿者が所有するものでサイト管理者はコメントに関する責任を負いません。