uses
CommCtrl;
procedure TForm1.Button1Click(Sender: TObject);
begin// Set the Background color to teal
Progressbar1.Brush.Color := clTeal;
// Set bar color to yellow
SendMessage(ProgressBar1.Handle, PBM_SETBARCOLOR, 0, clYellow);
end;
Программный код, который вы предоставили, устанавливает цвет фона ProgressBar в teal и цвет прогресс-бара в yellow при клике по кнопке.
Однако стоит отметить, что сообщение PBM_SETBARCOLOR работает только для классических оконных контролов (пред-Windows Vista). Для новых версий Windows рекомендуется использовать DTS_SETBARCOLOR вместо.
Вот обновленная версия вашего кода:
uses
CommCtrl;
procedure TForm1.Button1Click(Sender: TObject);
begin
// Установка цвета фона в teal
ProgressBar1.SetColor(clTeal, clNone);
end;
В этом обновленном варианте метод SetColor используется для одновременного установки обоих цветов ProgressBar. Первый параметр - это цвет фона (teal), а второй параметр - это цвет прогресс-бара (никакой). Этот подход более современный и работает на новых версиях Windows.
Также отметьте, что вам не нужно использовать SendMessage, когда работаете с контролами VCL, такими как ProgressBar, потому что они предоставляют свои собственные методы для установки свойств.
В статье описывается, как изменить стандартный цвет ProgressBar в Delphi, путем установки цвета фона и цвета полосы с помощью процедур Brush.Color и SendMessage.
Комментарии и вопросы
Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS