Программирование - это просто
Advertisement
Главная arrow Уроки программирования arrow Delphi: Маленькие хитрости arrow Delphi: Как сделать цветной ProgressBar (TProgrssBar, PBM_SETBARCOLOR SendMessage).
16.04.2024 г.
Главное меню
Главная
Интернет магазин
Программные продукты
Биржевые роботы
Искусственный интеллект
Математика и информатика
1С:Предприятие
Уроки C#
Уроки Delphi
Уроки программирования
Web-программирование
Дизайн и графика
Компьютер для блондинок
Исходники
Статьи
Платный раздел
Рассказы про компьютеры
Хитрости и секреты
Системный подход
Размышления
Наука для чайников
Друзья сайта
Excel-это не сложно
Все о финансах
.
Delphi: Как сделать цветной ProgressBar (TProgrssBar, PBM_SETBARCOLOR SendMessage). Печать E-mail
Автор megabax   
13.10.2010 г.
New Page 1

Delphi: Как сделать цветной ProgressBar (TProgrssBar, PBM_SETBARCOLOR SendMessage).

Напомню, компонент TProgrssBar находиться на закладке Win32*:

Delphi: Как сделать цветной ProgressBar (TProgrssBar, PBM_SETBARCOLOR SendMessage).

Как правило, он всегда имеет синий цвет*:

Delphi: Как сделать цветной ProgressBar (TProgrssBar, PBM_SETBARCOLOR SendMessage).

И другой цвет мы задать не можем, потому что у данного компонента нет свойства Color. Как же быть? Можно написать свой компонент. Вот его текст:

unit ColorProgressBar;

 

interface

 

uses

  SysUtils, Classes, Controls, ComCtrls, Graphics, Messages, Windows;

 

const PBM_SETBARCOLOR = WM_USER+9;

 

type

  TColorProgressBar = class(TProgressBar)

  private

    { Private declarations }

    FColor: TColor;

    procedure SetColor(const Value: TColor);

  protected

    { Protected declarations }

  public

    { Public declarations }

    procedure CreateWnd; override;

  published

    { Published declarations }

    property Color: TColor read FColor write SetColor;

  end;

 

procedure Register;

 

implementation

 

procedure Register;

begin

  RegisterComponents('MyCompnents', [TColorProgressBar]);

end;

 

procedure TColorProgressBar.CreateWnd;

begin

  inherited;

  if HandleAllocated then

    SendMessage(Handle, PBM_SETBARCOLOR, 0, FColor);

end;

 

procedure TColorProgressBar.SetColor(const Value: TColor);

begin

  FColor := Value;

  if HandleAllocated then

    SendMessage(Handle, PBM_SETBARCOLOR, 0, FColor);

end;

 

end.

 

Прежде чем рассказать, о том как устанавливать новый компонент, немого комментариев к коду. Здесь мы переопределяем процедуру CreateWnd которая отвечает за первоначальную создание окна ProgressBar. В ней просто идет посыл сообщения  PBM_SETBARCOLOR, которая указывает Windows каким цветом нужно окрасить ProgressBar.  Тоже самое происходит и при изменении свойства Color.

Теперь попробуем инсталлировать наш компонент - заходим в "Component" -> "Install Component"*:

 

Delphi: Как сделать цветной ProgressBar (TProgrssBar, PBM_SETBARCOLOR SendMessage).

 

В появившемся окне выбираем наш модуль и жмем ОК*:

 

Delphi: Как сделать цветной ProgressBar (TProgrssBar, PBM_SETBARCOLOR SendMessage).

 

И вот у нас готов новый компонент TColorProgressBar на закладке MyComonents*:

 

Delphi: Как сделать цветной ProgressBar (TProgrssBar, PBM_SETBARCOLOR SendMessage).

 

На какую закладку поместить компонент вы можете задать вот в этом фрагменте кода:

 

procedure Register;

begin

  RegisterComponents('MyCompnents', [TColorProgressBar]);

end;

 

Положим компонент на форму и убедимся, что у него есть свойство Color*:

 

Delphi: Как сделать цветной ProgressBar (TProgrssBar, PBM_SETBARCOLOR SendMessage).

 

 


Скриншоты, помеченные знаком * , являются цитатами и иллюстрациями  программного продукта "Delphi", авторское право на который принадлежит "Borland Software Corporation".


 

Последнее обновление ( 16.11.2011 г. )
 
« След.   Пред. »
 
© 2024 Программирование - это просто
Joomla! - свободное программное обеспечение, распространяемое по лицензии GNU/GPL.
Русская локализация © 2005-2008 Joom.Ru - Русский Дом Joomla!
Design by Mamboteam.com | Powered by Mambobanner.de
Я принимаю Яндекс.Деньги