Помогите покрасить ProgressBar...

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Помогите покрасить ProgressBar...

Сообщение McLion » 20.06.2015 13:36:09

Всем привет,

помогите покрасить ProgressBar. Что только не делаю, не красится и все. Вот что я делаю...

Код: Выделить всё
uses
  CommCtrl;

procedure TForm1.Button1Click(Sender: TObject);
begin
  // Set the Background color to red
  Progressbar1.Brush.Color := clRed;
  // Set bar color to red
  SendMessage(ProgressBar1.Handle, PBM_SETBARCOLOR, 0, clRed);
end;
Аватара пользователя
McLion
постоялец
 
Сообщения: 332
Зарегистрирован: 06.02.2015 18:41:00

Re: Помогите покрасить ProgressBar...

Сообщение Лекс Айрин » 20.06.2015 13:54:51

добавь после этого
Код: Выделить всё
Progressbar1.Repaint;


Добавлено спустя 1 минуту 50 секунд:
у меня красится и без SendMessage.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Помогите покрасить ProgressBar...

Сообщение McLion » 20.06.2015 14:07:08

Хм... не красит, хоть убей! У тебя какая версия Lazarus? У меня 1.4
Аватара пользователя
McLion
постоялец
 
Сообщения: 332
Зарегистрирован: 06.02.2015 18:41:00

Re: Помогите покрасить ProgressBar...

Сообщение Лекс Айрин » 20.06.2015 18:21:32

McLion, у меня снапшот (1.5) в предыдущей версии тоже было все нармально (1.3) а не... опять косяк. Надо попробовать форму передернуть.

Добавлено спустя 14 минут 6 секунд:
Все решил вопрос. Замените Repaint на SetFocus.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Помогите покрасить ProgressBar...

Сообщение alex208210 » 20.06.2015 19:20:32

штатный прогрессбар примитивен и не функционален, в результате такие действия как выбор цвета вызывают проблемы. Используйте tbgraprogressbar или делайте свой. Я сделал свой так как использую его на wince, а готовые долго прорисовываются.

Canvas.Pen.Color
Canvas.Brush.Color
Canvas.Rectangle
alex208210
постоялец
 
Сообщения: 207
Зарегистрирован: 12.05.2010 13:16:51

Re: Помогите покрасить ProgressBar...

Сообщение Лекс Айрин » 20.06.2015 19:53:16

Каюсь, только что заметил, что у меня TrackBar... но, думается, решение должно быть однотипным.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Помогите покрасить ProgressBar...

Сообщение Ism » 20.06.2015 20:09:10

Возможно это поможет
http://wiki.lazarus.freepascal.org/BGRA ... rogressBar

Кроссплатформенно в отличие от вашего варианта
Ism
энтузиаст
 
Сообщения: 908
Зарегистрирован: 06.04.2007 17:36:08

Re: Помогите покрасить ProgressBar...

Сообщение McLion » 21.06.2015 00:09:19

Уже нашел как, надо тему выключать...

Код: Выделить всё
uses CommCtrl;

const
  PBM_SETBARCOLOR = WM_USER + 9;   

  UxTheme.SetWindowTheme(ProgressBar.Handle, nil, '');
  ProgressBar.Brush.Color:= clRed;
  SendMessage(ProgressBar.Handle, PBM_SETBARCOLOR, 0, clRed);
Аватара пользователя
McLion
постоялец
 
Сообщения: 332
Зарегистрирован: 06.02.2015 18:41:00


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 227

Рейтинг@Mail.ru