フォームを表示しているときに起こるイベントには「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;

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