怎样得到TColorBox的六位RGB值?(50分)

  • 主题发起人 主题发起人 xumin23
  • 开始时间 开始时间
X

xumin23

Unregistered / Unconfirmed
GUEST, unregistred user!
例如白色为#000000
 
ColorToStr(ColorBox1.Color);
 
被人捷足先登了!
_delphi说的对!
 
错了, #000000 是黑色而不是白色[:)]
如果选择黑色(#000000),那么
ShowMessage(ColorToString(ColorDialog.Color)); //返加clBlack
ShowMessage('#'+InttoHex(ColorDialog.Color,6)); //返回#000000
 
不行啊,我的ColorBox1只有一个自定义颜色
但是showmessage(ColorToString(ColorBox1.Color))的结果是clwindow
而不是我选的颜色
 
Graphics单元中 TColor 的定义
TColor = -$7FFFFFFF-1..$7FFFFFFF;
TColor实际上就是整型,所以可以用InttoHex转换成十六进制的字符串,如上面的例子
ShowMessage('#'+InttoHex(ColorDialog.Color,6)); //返回#000000
而 ColorToString,看看Delphi中关于它的帮助就一清二楚了[:)]
Call ColorToString to obtain a string that represents a TColor value. If there is a symbolic constant defined for the color (such as clBlack or clHighlightText), ColorToString returns the name of the constant. Otherwise, ColorToString returns the hex value of the color, formatted as a string such as "$02FF8800" (Delphi) or "0x02FF8800" (C++).
 
我用的是TColorBox而不是Tcolordialog
 
看什么无所谓,只要是TColor就行了
ShowMessage('#'+InttoHex(ColorBox1.Selected,6));
 
var
PixelColor: Longint;

PixelColor := ColorToRGB(ColorBox1.Selected);
 
多人接受答案了。
 
后退
顶部