我有一个 Delphi XE2 项目要Label01 Font Color使用Timer04. 所以我写了以下代码:
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将其固定(比如绿色),并且亮度的值将从0增加到100。如果该值达到100,它将减少到0,并将继续循环。
对于我的情况,我选择HUE=135了SATURATION=85和BRIGHTNESS=50。的值BRIGHTNESS会从50增加到100,然后会从100减少到0并继续。Function但问题是HSB在. 我已经搞定了。但我发现任何as 。只有一些可用。我阅读了他们的评论,发现每个人都有一些错误。RGBDelphi XE2FunctionHSBToRGBDelphi Unit