Panel.Font.Colorを時間をずらして変えるには?

解決


なんとん  2004-01-07 00:58:15  No: 6543

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  URL  2004-01-07 01:10:21  No: 6544

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;


なんとん  2004-01-07 01:30:53  No: 6545

Halbowさん,できました。

>色を変更するメッセージ処理
が必要なんですね。よく分かりました。

有難うございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加