СообЧа > База Знаний > Программирование > Delphi

Вопрос

Как плавно изменить цвет панели от черного к красному?

Ответ

Кинь на форму TPanel (это будет Panel1) и батон (Button1). У панели поменяй цвет на "clBlack" (RGB — #000000). Далее в обработчике onClick батона напиши следующее:

procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
begin
//Изменять будем только красную компоненту цвета,
//ее возможные значения — 0..255 (byte)
For I:=1 to 255 do begin
//Установим цвет функцией RGB — она
//возвращает цвет по его составляющим
Panel1.Color:=RGB(i,0,0);
//Сделаем задержку
sleep(10);
//Обработаем системные сообщения
Application.processmessages
end;
end;


Небольшое пояснение к комментариям. Задержку выставляй какую тебе надо — это не существенно, просто со значением 10 у меня выглядело лучше всего.
Системные сообщения обработать НЕОБХОДИМО! Среди них есть мессага WM_PAINT, после получения которой прга перерисует свое окно. Если этого не делать, то цвет измениться резко — как закончиться процедура так тут же и произойдет изменение цвета, а нам надо изменять цвет в цикле, с задержкой.
ЗЫ: таким же способом можно изменять цвет шрифта, например что б плавно появилась надпись на панели.

Из конференции Expert_FAQ



Copyright © 2000-2004 Сообщество Чайников
Контактная информация