我有一个字符串,如果转换成tcolor类型,怎样判断它是不是一个正确的颜色值?
比如,我的字符串是‘clreda’
怎样判断clreda不是个正确的颜色值呢?
另外多问一句,是不是所有的颜色都可以表示成cl+颜色名 的,还是只有少部分?
比如,我的字符串是‘clreda’
怎样判断clreda不是个正确的颜色值呢?
另外多问一句,是不是所有的颜色都可以表示成cl+颜色名 的,还是只有少部分?
解决方案 »
- delphi高手何在?
- 简单问题,大家帮看看!初学者求助!
- 调查,大家都几点下班,要加班多久
- 在.NET中,有类似Delphi中的TField的OnChange、OnSetText、OnGetText、OnValidate的事件处理吗?
- 电脑报合订本P4编译通不过
- 我想把HTML页面里面的文字内容提取出来,并且保存,高手给点提示!!!
- buddydeus进来接分
- 一道面试题 :请教delphi 中的多层(架构不是数据)连接方式及各有好处与不足??
- 关于动态调用dll的问题
- ado的loadfromfile
- 基础知识,如何给静态二维数组批量赋值?
- 在delphi中,子窗体插入一条数据,父窗体中有显示子窗体所有数据的DGrid,问父窗体的这个DGrid如何随着子窗体插入实时更新?而子窗体不关闭。
你看到的cl开头表示的颜色,是D已经定义好的D中好象是用4字节的二进制码来定义颜色的,范围是多少?忘记了!!!!
低3位字节(后面六位)代表RGB相应的颜色
如:$00000000表示黑色(clBlack),$00FFFFFF表示白色(clWhite)你可以试着改变他们的值,在这个范围内都可以表示某个颜色,如:
label1.Color:=TColor($00123456);
const
clSystemColor = $FF000000; clScrollBar = TColor(clSystemColor or COLOR_SCROLLBAR);
clBackground = TColor(clSystemColor or COLOR_BACKGROUND);
clActiveCaption = TColor(clSystemColor or COLOR_ACTIVECAPTION);
clInactiveCaption = TColor(clSystemColor or COLOR_INACTIVECAPTION);
clMenu = TColor(clSystemColor or COLOR_MENU);
clWindow = TColor(clSystemColor or COLOR_WINDOW);
clWindowFrame = TColor(clSystemColor or COLOR_WINDOWFRAME);
clMenuText = TColor(clSystemColor or COLOR_MENUTEXT);
clWindowText = TColor(clSystemColor or COLOR_WINDOWTEXT);
clCaptionText = TColor(clSystemColor or COLOR_CAPTIONTEXT);
clActiveBorder = TColor(clSystemColor or COLOR_ACTIVEBORDER);
clInactiveBorder = TColor(clSystemColor or COLOR_INACTIVEBORDER);
clAppWorkSpace = TColor(clSystemColor or COLOR_APPWORKSPACE);
clHighlight = TColor(clSystemColor or COLOR_HIGHLIGHT);
clHighlightText = TColor(clSystemColor or COLOR_HIGHLIGHTTEXT);
clBtnFace = TColor(clSystemColor or COLOR_BTNFACE);
clBtnShadow = TColor(clSystemColor or COLOR_BTNSHADOW);
clGrayText = TColor(clSystemColor or COLOR_GRAYTEXT);
clBtnText = TColor(clSystemColor or COLOR_BTNTEXT);
clInactiveCaptionText = TColor(clSystemColor or COLOR_INACTIVECAPTIONTEXT);
clBtnHighlight = TColor(clSystemColor or COLOR_BTNHIGHLIGHT);
cl3DDkShadow = TColor(clSystemColor or COLOR_3DDKSHADOW);
cl3DLight = TColor(clSystemColor or COLOR_3DLIGHT);
clInfoText = TColor(clSystemColor or COLOR_INFOTEXT);
clInfoBk = TColor(clSystemColor or COLOR_INFOBK);
clHotLight = TColor(clSystemColor or COLOR_HOTLIGHT);
clGradientActiveCaption = TColor(clSystemColor or COLOR_GRADIENTACTIVECAPTION);
clGradientInactiveCaption = TColor(clSystemColor or COLOR_GRADIENTINACTIVECAPTION);
clMenuHighlight = TColor(clSystemColor or COLOR_MENUHILIGHT);
clMenuBar = TColor(clSystemColor or COLOR_MENUBAR); clBlack = TColor($000000);
clMaroon = TColor($000080);
clGreen = TColor($008000);
clOlive = TColor($008080);
clNavy = TColor($800000);
clPurple = TColor($800080);
clTeal = TColor($808000);
clGray = TColor($808080);
clSilver = TColor($C0C0C0);
clRed = TColor($0000FF);
clLime = TColor($00FF00);
clYellow = TColor($00FFFF);
clBlue = TColor($FF0000);
clFuchsia = TColor($FF00FF);
clAqua = TColor($FFFF00);
clLtGray = TColor($C0C0C0);
clDkGray = TColor($808080);
clWhite = TColor($FFFFFF);
StandardColorsCount = 16; clMoneyGreen = TColor($C0DCC0);
clSkyBlue = TColor($F0CAA6);
clCream = TColor($F0FBFF);
clMedGray = TColor($A4A0A0);
ExtendedColorsCount = 4; clNone = TColor($1FFFFFFF);
clDefault = TColor($20000000);
2、是不是所有的颜色都可以表示成cl+颜色名 的,还是只有少部分?
答:只少非常少的一部分颜色的是用RGB(即:红、黄、蓝三色原理)来表示的;三色任一个色的取值范围[0..255]占8bit;所有三个色就要用8bit*3=24bit来表示。而Integer占8bit*4=32bit,所以通常用一个整形数来表示。而颜色的范围就$0~$FFFFFF(16进制),你不用知道有多少个颜色了,因为它基本上可以说是无穷的了。因而所有颜色不可能用“cl+颜色名”表示得完的!
a: TColor;if IdentToColor('aaaaaaaaa', a) then
Font.Color := a;