Panelのフォント色を変えようとしていますが,sleepでは
思ったようにできません。
やりたいことは,Panels[P1].Font.Colorを赤にしたあと,
400ミリ秒後に Panels[P2].Font.Color も赤に,さらに
400ミリ秒後に元の色に戻すことです。
下記のコードでは,失敗です。
procedure IroHenko2(P1, P2: integer);
begin
Panels[P1].Color := clYellow;
Panels[P2].Color := clYellow;
sleep(400);
Panels[P1].Font.Color := clRed;
sleep(400);
Panels[P2].Font.Color := clRed;
sleep(400);
Panels[P1].Font.Color := clBlack;
Panels[P2].Font.Color := clBlack;
end;
どのようにすればいいのでしょうか。
Halbow です。
色を変更するメッセージ処理をさせなくてはなりません。
procedure IroHenko2(P1, P2: integer);
procedure Wait(duration:DWORD);
begin
Application.ProcessMessages;
Sleep(duration)
end;
begin
Panels[P1].Color := clYellow;
Panels[P2].Color := clYellow;
Wait(400);
Panels[P1].Font.Color := clRed;
Wait(400);
Panels[P2].Font.Color := clRed;
Wait(400);
Panels[P1].Font.Color := clBlack;
Panels[P2].Font.Color := clBlack;
end;
Halbowさん,できました。
>色を変更するメッセージ処理
が必要なんですね。よく分かりました。
有難うございました。
ツイート | ![]() |