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

时间:2009-08-12 21:08:04

标签: delphi

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

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

所有我似乎得到的是'$ FAFAFF'作为字符串,其中webcolors存储为字符串,而StandardColors和ExtendedColors返回颜色常量值。

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

比尔

2 个答案:

答案 0 :(得分:8)

查看RGBToWebColorName中的GraphUtil

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

答案 1 :(得分:0)

ColorToString使用Graphics.pas中定义的const数组“Colors”,使用IntToIdent地图查找颜色名称。可能解决这个问题的唯一方法是使用自定义的Graphics.pas,在其中为数组添加新条目。