У меня есть один Delphi XE2 Project для изменения Label01 Font Color
с использованием Timer04
. Поэтому я написал следующие коды:Как конвертировать HSB в RGB
procedure TMainForm.FormCreate(Sender: TObject);
begin
Timer04.Enabled := true;
end;
..
..
..
..
..
procedure TMainForm.Timer04Timer(Sender: TObject);
var
StartColor, RedColor, GreenColor, BlueColor: integer;
begin
StartColor := ColorToRGB(Label01.Font.Color);
RedColor := GetRValue(StartColor);
GreenColor := GetGValue(StartColor);
BlueColor := GetBValue(StartColor);
if RedColor <= 251 then Inc(RedColor, 1) else RedColor := 1;
if GreenColor <= 252 then Inc(GreenColor, 2) else GreenColor := 2;
if BlueColor <= 253 then Inc(BlueColor, 3) else BlueColor := 3;
Label01.Font.Color := RGB(RedColor, GreenColor, BlueColor);
end;
Эти коды отлично работают. Label01 Font Color
Изменения между разными цветами.
Теперь я пытаюсь осуществить это Label02 Color
будет фиксирован (скажем зеленый) и значение brightnees будет увеличиваться от 0 до . Если значение достигнет , оно будет уменьшено до и оно будет непрерывным до петли.
Для моего случая я выбрал HUE=135
, SATURATION=85
и BRIGHTNESS=50
. Значение BRIGHTNESS
будет увеличено с до , а затем будет уменьшаться от до и она будет продолжена. Но проблема в том, что таких Function
нет в наличии для преобразования HSB
в RGB
и наоборот Delphi XE2
. Я обманул его. Но я нашел Function
как HSBToRGB
. Доступно только Delphi Unit
. Я прочитал их рецензии и обнаружил, что у каждого есть некоторые ошибки.
Как насчет использования функции 'ColorHLSToRGB' из единицы GraphUtil.pas' и * convert *' TColorRef' в 'TColor'? И что ? Не ждите, пока я напишу ваш код. Это то, что нужно для аренды услуг coder *. И даже там я не помогу, так как я занят чем-то более важным, чем эффект воды. И я сказал вам, что код, который вы отправили в предыдущем вопросе, в порядке. – TLama
Необходимо срочно удалить деталь, начиная с @TLama – bummi
«Я прочитал их ревю и обнаружил, что у каждого есть некоторые ошибки». Затем исправьте эти ошибки. У вас есть формулы - http://en.wikipedia.org/wiki/HSL_and_HSV - возьмите их и примените их. –