【问题标题】:How to set a custom TAlphaColor programmatically?如何以编程方式设置自定义 TAlphaColor?
【发布时间】:2015-11-17 15:15:02
【问题描述】:

这基本上就是我在Delphi 中以编程方式将colors 归于Delphi

label.FontColor      := TAlphaColors.Yellow;

如果我想要像#FF1C90EF 这样的自定义颜色怎么办?

如何以编程方式设置它

【问题讨论】:

  • label.FontColor := $FF1C90EF;

标签: delphi colors firemonkey


【解决方案1】:

类似于 VCL 中的 TColorTAlphaColor 只是一个整数(好吧,无论如何都是一个 Cardinal),因此您可以直接键入您的十六进制值:

label.FontColor := TAlphaColor($FF1C90EF);

Embarcadero 的 DocWiki 上记录了这种行为:

System.UITypes.TAlphaColor

设置颜色的三种方式:

  • 使用 System.UIConsts 中的预定义常量:

    Color := claGreen; //Delphi
    Color = TAlphaColor(claGreen); // C++
    
  • 使用来自 TAlphaColorRec 的预定义常量:

    Color := TAlphaColorRec.Green; //Delphi
    Color = TAlphaColor(TAlphaColorRec::Green); // C++
    
  • 使用4字节十六进制数表示:

    Color := $FF008000;  // Delphi
    Color = TAlphaColor(0xFF008000); // C++
    

您还可以使用TAlphaColorRec 记录来分配各个组件:

var
  rec: TAlphaColorRec;
begin
  rec.A := $FF;
  rec.R := $1C;
  rec.G := $90;
  rec.B := $EF;
  label.FontColor := rec.Color;
end;

【讨论】:

  • 还有TAlphaColors.Green
  • 为什么我用 TAlphaColorRec.Green 得到Range check error
  • @SAMPro 没有TAlphaColorRec.Green,您的意思是TAlphaColorRec.G 还是TAlphaColors.Green?你的代码看起来有什么错误?
【解决方案2】:

看起来您可以将颜色传递给 TAlphaColor 的新实例

例如,TAlphaColor($FF1C90EF)

话虽如此,您也可以直接设置.FontColor 属性,而无需创建TAlphaColor 的新实例。

【讨论】:

  • 不会是TAlphaColor($FF1C90EF); 吗?
  • @Holmes 会的,是的。我修好了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-09-07
  • 1970-01-01
  • 2015-11-22
  • 2011-11-11
  • 1970-01-01
  • 1970-01-01
  • 2013-05-26
相关资源
最近更新 更多