Jak przekonwertować HSB na RGB

Mam jedną DelphiProjekt XE2 zmienićLabel01 Font Color za pomocąTimer04. Napisałem więc następujące kody:

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;

Te kody działają idealnie.Label01 Font Color zmiany między różnymi kolorami.

Teraz próbuję to zaimplementowaćLabel02 Color zostanie naprawiony (powiedzmy Zielony), a wartość jasności wzrośnie z0 do100. Jeśli wartość sięga100 zostanie zmniejszona do0 i będzie ciągły do ​​pętli.

W moim przypadku wybrałemHUE=135, SATURATION=85 iBRIGHTNESS=50. WartośćBRIGHTNESS zostanie zwiększona z50 do100 a następnie zostanie zmniejszona z100 do0 i będzie kontynuowane. Ale problem polega na tym, że takiego nie maFunction dostępne do konwersjiHSB doRGB i odwrotnie wDelphi XE2. Gooled to. Ale znalazłem cośFunction tak jakHSBToRGB. Tylko kilkaDelphi Unit jest dostępny. Przeczytałem ich informacje i odkryłem, że każdy ma jakieś błędy.

questionAnswers(2)

yourAnswerToTheQuestion