На
Наталья

Как сделать так чтобы Форма меняла плавно цвет? Delphi

Я делаю скринсейвер на делфи, я нашел код изменения цвета формы, сделал, но цвет переключается не плавно! Как сделать так чтобы цвет переключался плавно?

ВМ
Владимир Мельников

Цвет можно задавать числом, само число передавать через переменную, меняя. попробуй вместо ..color:=тут впиши число;

ИГ
Ирина Горячева

С помощью ColorToRgb получаешь
Начальный_цвет = ColorToRgb(Form1.color)
Смещением получаешь значения цветов:

byte Красный = Начальный_цвет
byte Зеленый = Начальный_цвет shr 8
byte Синий = Начальный_цвет shr 16

Отнимаешь начальный цвет от конечного, делишь на количество проходов, записываешь в ИНТОВУЮ переменную по цветам (byte не может отрицательные значения принимать)

Создаешь таймер (или еще как) , в котором будут прибавляться полученные переменная к байтам цвета (2 условия не забудь такого типа: if Красный+шаг_Красного>255 Красный=255 и if Красный+шаг_Красного<0 Красный=0 )
Ну и заканчиваешь так Form1.color = rgb(Красный, Зеленый, Синий)
Всё.

З. Ы.

Хотя что там, можно сразу в инты записать так:

int red := start_color shr 16; //RRGGBB 16>> 0000RR

int green := (start_color shl 😎 shr 16; //RRGGBB 8<< GGBB00 16>> 0000GG

int blue := (start_color shl 16) shr 16; //RRGGBB 16<< BB0000 16>> 0000BB

Похожие вопросы
Delphi и размеры формы
Как ожидать закрытия формы? Delphi
вопрос про формы (Delphi)?
Как сделать текст в Delphi ,(Label) , чтобы он всегда менял цвет (как гифка)?
Как сделать чтобы белый цвет переходил плавно в черный? Как можно подробней!
Delphi 7. Можно ли создать меняющуюся форму внутри основной формы?
delphi 7 как поменять цвет формы с помощью radiobutton. delphi 7 как поменять цвет формы с помощью radiobutton
Delphi-скрытие формы...
Delphi можно ли сделать у формы прозрачный фон
Как сделать форму первой (главной) в delphi