Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Delphi 如何获取系统颜色的RGB值?_Delphi_Colors_Delphi Xe7_Systemcolors - Fatal编程技术网

Delphi 如何获取系统颜色的RGB值?

Delphi 如何获取系统颜色的RGB值?,delphi,colors,delphi-xe7,systemcolors,Delphi,Colors,Delphi Xe7,Systemcolors,我一直使用GetRValue、GetGValue和GetBValue函数(从Winapi.Windows单元)来提取TColor的RGB值 不幸的是,同样的方法似乎不适合像clWindow、clBtnFace等 例如: var MyColor : TColor; begin MyColor := clBtnFace; ShowMessage( 'R = ' + IntToStr(GetRValue(MyColor)) + sLineBreak + 'G = ' +

我一直使用
GetRValue
GetGValue
GetBValue
函数(从
Winapi.Windows
单元)来提取
TColor
的RGB值

不幸的是,同样的方法似乎不适合像
clWindow
clBtnFace

例如:

var
  MyColor : TColor;
begin
  MyColor := clBtnFace;

  ShowMessage(
    'R = ' + IntToStr(GetRValue(MyColor)) + sLineBreak +
    'G = ' + IntToStr(GetGValue(MyColor)) + sLineBreak +
    'B = ' + IntToStr(GetBValue(MyColor))
  );
end;
它产生以下输出:

R=15

G=0

B=0

应该是这样的:

在我的系统上,我看到以下颜色:

使用
Get(R | G | B)Value()
可以很好地处理系统颜色,您只需先将它们转换为RGB即可。使用以下功能:

将TColor值转换为颜色的RGB表示形式

例如:

var
霉色:TColor;
RGB:Longint;
开始
MyColor:=…;//任何有效的TColor值,无论是RGB还是系统常数。。。
RGB:=色度GB(MyColor);
显示消息(
'R='+IntToStr(GetRValue(RGB))+sLineBreak+
“G=”+IntToStr(GetGValue(RGB))+sLineBreak+
“B=”+IntToStr(GetBValue(RGB))
);
结束;
使用
Get(R | G | B)Value()
可以很好地处理系统颜色,只需先将它们转换为RGB即可。使用以下功能:

将TColor值转换为颜色的RGB表示形式

例如:

var
霉色:TColor;
RGB:Longint;
开始
MyColor:=…;//任何有效的TColor值,无论是RGB还是系统常数。。。
RGB:=色度GB(MyColor);
显示消息(
'R='+IntToStr(GetRValue(RGB))+sLineBreak+
“G=”+IntToStr(GetGValue(RGB))+sLineBreak+
“B=”+IntToStr(GetBValue(RGB))
);
结束;

你知道的!:)@安德烈亚斯雷杰布兰德:看来你是对的,一个月前我是一个多么聪明的人啊D(我可能从某个地方复制了它,却不知道
ColorToRGB
正在“解析”系统颜色,这是我的错!)你知道的!:)@安德烈亚斯雷杰布兰德:看来你是对的,一个月前我是一个多么聪明的人啊D(我可能从某个地方复制了它,却不知道
ColorToRGB
正在“解决”系统颜色,这是我的错!)