如何从存储为字符串的颜色中返回Web颜色常量?

问题描述:

//clWebSnow = $FAFAFF; defined in Graphics.pas 
Listbox1.Items.Add(ColorToString(clRed)); 
Listbox1.Items.Add(ColorToString(clWebSnow)); 

如何将“WebSnow”作为字符串返回,以将颜色显示为WebSnow的颜色常量?如何从存储为字符串的颜色中返回Web颜色常量?

所有我可以看到'$ FAFAFF'作为一个字符串与webcolors存储为一个字符串,而StandardColors和ExtendedColors返回颜色常量值。

示例: clRed在列表框中显示为红色,并在标签标题中显示为红色。 clWebSnow在列表框中显示为'$ FAFAFF',并在标签标题中显示为$ FAFAFF。

比尔

请看RGBToWebColorNameGraphUtil

Label1.Caption := RGBToWebColorName(clWebSnow); // returns "clWebSnow" 
+0

谢谢布鲁斯工作。 感谢您 – 2009-08-12 23:00:43

+0

如果您有兴趣,GraphUtils.pas中有更多转换和实用方法可用于Web和RGB颜色。 – 2009-08-13 01:21:22

+1

GrahUtil的在线文档可以在这里找到。 http://docs.embarcadero.com/products/rad_studio/delphiAndcpp2009/HelpUpdate2/EN/html/delphivclwin32/GraphUtil.html – stukelly 2009-08-13 07:21:38

ColorToString看起来颜色名称了使用Graphics.pas定义的常量阵列“颜色”的IntToIdent地图。解决这个问题的唯一方法可能是使用一个自定义的Graphics.pas文件,在其中添加了新的条目到数组中。