如何从存储为字符串的颜色中返回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。
比尔
答
请看RGBToWebColorName的GraphUtil。
Label1.Caption := RGBToWebColorName(clWebSnow); // returns "clWebSnow"
答
ColorToString看起来颜色名称了使用Graphics.pas定义的常量阵列“颜色”的IntToIdent地图。解决这个问题的唯一方法可能是使用一个自定义的Graphics.pas文件,在其中添加了新的条目到数组中。
谢谢布鲁斯工作。 感谢您 – 2009-08-12 23:00:43
如果您有兴趣,GraphUtils.pas中有更多转换和实用方法可用于Web和RGB颜色。 – 2009-08-13 01:21:22
GrahUtil的在线文档可以在这里找到。 http://docs.embarcadero.com/products/rad_studio/delphiAndcpp2009/HelpUpdate2/EN/html/delphivclwin32/GraphUtil.html – stukelly 2009-08-13 07:21:38