【发布时间】:2012-11-14 11:33:25
【问题描述】:
在 FMX 中是否存在 ColorToRGB 的等效函数?
【问题讨论】:
标签: delphi firemonkey
在 FMX 中是否存在 ColorToRGB 的等效函数?
【问题讨论】:
标签: delphi firemonkey
您可以使用 TAlphaColorRec 获取 R、G、B 或 longint 值(在 Delphi XE3+FireMonkey2 中 - 我不确定 XE2)
试试这个,在 Firemonkey 表单中添加两个按钮和一个 TRectangle 并为 onClick 事件添加这些:
procedure TForm1.btnBrownClick(Sender: TObject);
var
r: System.Byte;
aColor: TAlphaColor;
rgbValue: longint;
begin
aColor:= TAlphaColorRec.Brown; //$A52A2A
r:= TAlphaColorRec(aColor).R;
ShowMessage('Red component of Brown is: $'+IntToHex(r,2));
Rectangle1.Fill.Color:= aColor;
rgbValue:= TAlphaColorRec(aColor).Color;
ShowMessage('Brown is: $'+IntToHex(rgbValue,8));
end;
procedure TForm1.btnRedderClick(Sender: TObject);
var
aColor: TAlphaColor;
rgbValue: longint;
begin
aColor:= TAlphaColorRec.Brown;
TAlphaColorRec(aColor).R:= 255; //$A52A2A becomes $FF2A2A
Rectangle1.Fill.Color:= aColor;
rgbValue:= TAlphaColorRec(aColor).Color;
ShowMessage('Redder Brown is: $'+IntToHex(rgbValue,8));
end;
【讨论】: