Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.03.17;
Скачать: CL | DM;

Вниз

Ребята! Переход от цвета к цвету (затухание).   Найти похожие ветки 

 
Intell   (2003-03-04 19:12) [0]

У меня проблема. Мне нужно сделать два вида Label -
1)мигающий
2)у которого происходит медленное затухание (от белого к серому)
я пробовал задавать переход от одного цвета к другому но у меня не получилось. Если кто знает - ПОДСКАЖИТЕ КАК ЭТО СДЕЛАТЬ. Буду ОЧЕНЬ благодарен за любую помощь.

sergein@nojabrsk.ru


 
MBo ©   (2003-03-04 19:26) [1]

Сегодня было, поройся в форуме


 
Начинающий программист ©   (2003-03-04 19:31) [2]

1. Создай наследника от TLabel (или от TCustomLabel), добавь в него таймер и делай с ним что хочешь.
2. TColor -- цвет в формате ARGB (или RGBA -- точно не помню). Если из него вычитать 1, то он пробежит по всем цветам. Для плавного затухания вычитай 1 покомпонентно. Для удобства TColor можно привести к TRGBQUAD (виндовзкий тип). Как это будет работать не в 32-х битных видеорежимах я не знаю.


 
Kotka ©   (2003-03-04 19:34) [3]

В цикле for i:=255 downto 128 рисуешь на канвасе 128 прямоугольников цвета rgb(i,i,i)
Я всегда так делал


 
Intell ©   (2003-03-05 14:44) [4]

Ребята! Так и не получил хорошего ответа, хотя предложение Начинающий программист`а мне понравилось, но хотелось бы программничек...


 
Yakudza ©   (2003-03-05 17:06) [5]

Вот так можно помигать компонентом, попробуй может что нароешь для себя.

procedure TForm1.FlashControl(Control : TControl);
begin
if(Control.Tag=0)then
begin
Control.Tag:=8;
SetTimer(Handle,Integer(Control),75,nil);
end;
end;


procedure TForm.WMTimer(var Msg: TWMTimer);
begin
if(DWORD(Msg.TimerID)>2)then
begin
TControl(Msg.TimerID).Tag := TControl(Msg.TimerID).Tag-1;
if (TColorControl(Msg.TimerID).Color = clRed) then TColorControl(Msg.TimerID).Color := clWhite else TColorControl(Msg.TimerID).Color := clRed;
if(TControl(Msg.TimerID).Tag <=0 ) then KillTimer(Handle,Msg.TimerID);
end
else
inherited;
end;


 
Intell ©   (2003-03-05 17:40) [6]

Yakudza, чего-то я в этом примере не понял... Строка
//if (TColorControl(Msg.TimerID).Color = clRed) then TColorControl(Msg.TimerID).Color := clWhite else TColorControl(Msg.TimerID).Color := clRed;
смахивает на истину, но как ей воспользоваться?



Страницы: 1 вся ветка

Текущий архив: 2003.03.17;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.016 c
14-54211
Cavin
2003-03-02 15:03
2003.03.17
Great Maniac Auto (aka GTA)


3-53933
Cossys
2003-02-26 11:41
2003.03.17
XLReport - где добыть


1-54076
zergey
2003-03-05 11:28
2003.03.17
Как использовать COM объект


1-54003
[BAD]Angel
2003-03-05 20:46
2003.03.17
Вопрос по службам (Services)


1-53985
Tema
2003-03-06 09:41
2003.03.17
Стиль формы