2009-08-12 5 views
3
//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と表示します。

ビル

答えて

8

RGBToWebColorNameGraphUtilでご覧ください。

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

ありがとうございました。 ありがとうございました –

+0

興味のある方は、GraphUtils.pasでウェブとRGBカラーの変換とユーティリティのいくつかの方法があります。 –

+1

GrahUtilのオンラインドキュメントはこちらから入手できます。 http://docs.embarcadero.com/products/rad_studio/delphiAndcpp2009/HelpUpdate2/EN/html/delphivclwin32/GraphUtil.html – stukelly

0

ColorToStringはGraphics.pasで定義されたconstの配列「色」を使用してIntToIdentマップで最大の色名を探します。おそらく、これを回避する唯一の方法は、配列に新しいエントリを追加したカスタムGraphics.pasを使用することです。

関連する問題