如何在colordialog中选择颜色时得到相应的名称(100分)

  • 主题发起人 主题发起人 schheng
  • 开始时间 开始时间
S

schheng

Unregistered / Unconfirmed
GUEST, unregistred user!
想在colordialog中选择某一颜色时能在相应的combobox中得到相应的名称,如何实现
 
http://delphibbs.com/delphibbs/dispq.asp?lid=2529178
 
我用的是colordialog,好象与这个有点区别的
 
转换为字符:IntToHex(ColorDialog1.Color,8)
赋值:shape.brush.color:=StrToInt($00AA00FF)
 
ColorToString()
 
如果在colordialog 上选择了红色,刚在combobox1中出现'红色'
我想把所有的颜色都选出来,请指教
 
有很多颜色都没名字的
 
是哦,难道你要注明有深蓝,浅蓝。。。吗???
 
最好是能区分出来,有个日本人写了个WhatColor,就能区分出来.
 
各位帮帮忙, 我根据RGB值自定一些颜色名称,比如clBrown=($A52A2A)如何实现,谢谢
提供思路有分
 
TYPE
TMYCOLOR=(clred,clblue,clblack,...clBrown);//你所需要的全部颜色名称
const
myclolorarry: array[clred..clBrown] of int64 =($00001,$00002,...$A52A2A)
转换时就可以
function myColorToHex(Be: byte): TMYCOLOR;
var
i : TMYCOLOR;
begin
result := clred;
for i := clred to clBrown do
if myclolorarry = Be then
begin
Result := i;
Break;
end;
end;
不过$A52A2A是不是int64类型我就不确定了
 
写了一个类,颜色是从HTML定义的颜色来的,
写完以后发现一个问题,Delphi里的颜色(TColor)竟然是反序的,
一般颜色是:红、绿、蓝
Delphi的TColor就是:蓝、绿、红
比如红色一般的表示是$ff0000,在delphi里的clRed就是$0000ff,
这个问题你自己改一下吧,呵呵
另外,如果想要中文,你也可以翻译一下,主要都在Create里
type
EColorName = class(Exception);
TColorName = class
private
FColorList: TStringList;
public
constructor Create;
destructor Destroy; override;
function Color(name: string): TColor;
function ColorString(name: string): string;
function ColorName(color: TColor): string;
end;

implementation

function TColorName.Color(name: string): TColor;
var
i: integer;
begin
i := FColorList.IndexOf(name);
if i = -1 then
raise EColorName.Create('cannot found color ' + name)
else
result := Integer(FColorList.Objects);
end;

function TColorName.ColorName(color: TColor): string;
var
i: integer;
begin
i := FColorList.IndexOfObject(TObject(color));
if i = -1 then
result := 'custom'
else
result := FColorList.Strings;
end;

function TColorName.ColorString(name: string): string;
var
c: TColor;
begin
c := Color(name);
result := IntToHex(c, 6);
end;

constructor TColorName.Create;
begin
FColorList := TStringList.Create;
FColorList.AddObject('aliceblue', TObject($F0F8FF));
FColorList.AddObject('antiquewhite', TObject($FAEBD7));
FColorList.AddObject('aqua', TObject($00FFFF));
FColorList.AddObject('aquamarine', TObject($7FFFD4));
FColorList.AddObject('azure', TObject($F0FFFF));
FColorList.AddObject('beige', TObject($F5F5DC));
FColorList.AddObject('bisque', TObject($FFE4C4));
FColorList.AddObject('black', TObject($000000));
FColorList.AddObject('blanchedalmond', TObject($FFEBCD));
FColorList.AddObject('blue', TObject($0000FF));
FColorList.AddObject('blueviolet', TObject($8A2BE2));
FColorList.AddObject('brown', TObject($A52A2A));
FColorList.AddObject('burlywood', TObject($DEB887));
FColorList.AddObject('cadetblue', TObject($5F9EA0));
FColorList.AddObject('chartreuse', TObject($7FFFA0));
FColorList.AddObject('chocolate', TObject($D2691E));
FColorList.AddObject('coral', TObject($FF7F50));
FColorList.AddObject('cornflowerblue', TObject($6495ED));
FColorList.AddObject('cornsilk', TObject($FFF8DC));
FColorList.AddObject('crimson', TObject($DC143C));
FColorList.AddObject('cyan', TObject($00FFFF));
FColorList.AddObject('darkblue', TObject($00008B));
FColorList.AddObject('darkcyan', TObject($008B8B));
FColorList.AddObject('darkgoldenrod', TObject($B8860B));
FColorList.AddObject('darkgray', TObject($A9A9A9));
FColorList.AddObject('darkgreen', TObject($006400));
FColorList.AddObject('darkkhaki', TObject($BDB76B));
FColorList.AddObject('darkmagenta', TObject($8B008B));
FColorList.AddObject('darkolivegreen', TObject($556B2F));
FColorList.AddObject('darkorange', TObject($FF8C00));
FColorList.AddObject('darkorchid', TObject($9932CC));
FColorList.AddObject('darkred', TObject($8B0000));
FColorList.AddObject('darksalmon', TObject($E9967A));
FColorList.AddObject('darkseagreen', TObject($8FBC8F));
FColorList.AddObject('darkslateblue', TObject($483D8B));
FColorList.AddObject('darkslategray', TObject($2F4F4F));
FColorList.AddObject('darkturquoise', TObject($00CED1));
FColorList.AddObject('darkviolet', TObject($9400D3));
FColorList.AddObject('deeppink', TObject($FF1493));
FColorList.AddObject('deepskyblue', TObject($00BFFF));
FColorList.AddObject('dimgray', TObject($696969));
FColorList.AddObject('dodgerblue', TObject($1E90FF));
FColorList.AddObject('firebrick', TObject($B22222));
FColorList.AddObject('floralwhite', TObject($FFFAF0));
FColorList.AddObject('forestgreen', TObject($228B22));
FColorList.AddObject('fushcia', TObject($FF00FF));
FColorList.AddObject('gainsboro', TObject($DCDCDC));
FColorList.AddObject('ghostwhite', TObject($F8F8FF));
FColorList.AddObject('gold', TObject($FFD700));
FColorList.AddObject('goldenrod', TObject($DAA520));
FColorList.AddObject('gray', TObject($808080));
FColorList.AddObject('green', TObject($008000));
FColorList.AddObject('greenyellow', TObject($ADFF2F));
FColorList.AddObject('honeydew', TObject($F0FFF0));
FColorList.AddObject('hotpink', TObject($FF69B4));
FColorList.AddObject('indianred', TObject($CD5C5C));
FColorList.AddObject('indigo', TObject($4B0082));
FColorList.AddObject('ivory', TObject($FFFFF0));
FColorList.AddObject('khaki', TObject($F0E68C));
FColorList.AddObject('lavender', TObject($E6E6FA));
FColorList.AddObject('lavenderblush', TObject($FFF0F5));
FColorList.AddObject('lawngreen', TObject($7CFC00));
FColorList.AddObject('lemonchiffon', TObject($FFFACD));
FColorList.AddObject('lightblue', TObject($ADD8E6));
FColorList.AddObject('lightcoral', TObject($F08080));
FColorList.AddObject('lightcyan', TObject($E0FFFF));
FColorList.AddObject('lightgoldenrodyellow', TObject($FAFAD2));
FColorList.AddObject('lightgreen', TObject($90EE90));
FColorList.AddObject('lightgrey', TObject($D3D3D3));
FColorList.AddObject('lightpink', TObject($FFB6C1));
FColorList.AddObject('lightsalmon', TObject($FFA07A));
FColorList.AddObject('lightseagreen', TObject($20B2AA));
FColorList.AddObject('lightskyblue', TObject($87CEFA));
FColorList.AddObject('lightslategray', TObject($778899));
FColorList.AddObject('lightsteelblue', TObject($B0C4DE));
FColorList.AddObject('lightyellow', TObject($FFFFE0));
FColorList.AddObject('lime', TObject($00FF00));
FColorList.AddObject('limegreen', TObject($32CD32));
FColorList.AddObject('linen', TObject($FAF0E6));
FColorList.AddObject('magenta', TObject($FF00FF));
FColorList.AddObject('maroon', TObject($800000));
FColorList.AddObject('mediumaquamarine', TObject($66CDAA));
FColorList.AddObject('mediumblue', TObject($0000CD));
FColorList.AddObject('mediumorchid', TObject($BA55D3));
FColorList.AddObject('mediumpurple', TObject($9370DB));
FColorList.AddObject('mediumseagreen', TObject($3CB371));
FColorList.AddObject('mediumslateblue', TObject($7B68EE));
FColorList.AddObject('mediumspringgreen', TObject($00FA9A));
FColorList.AddObject('mediumturquoise', TObject($48D1CC));
FColorList.AddObject('mediumvioletred', TObject($C71585));
FColorList.AddObject('midnightblue', TObject($191970));
FColorList.AddObject('mintcream', TObject($F5FFFA));
FColorList.AddObject('mistyrose', TObject($FFE4E1));
FColorList.AddObject('moccasin', TObject($FFE4B5));
FColorList.AddObject('navajowhite', TObject($FFDEAD));
FColorList.AddObject('navy', TObject($000080));
FColorList.AddObject('oldlace', TObject($FDF5E6));
FColorList.AddObject('olive', TObject($808000));
FColorList.AddObject('olivedrab', TObject($6B8E23));
FColorList.AddObject('orange', TObject($FFA500));
FColorList.AddObject('orangered', TObject($FF4500));
FColorList.AddObject('orchid', TObject($DA70D6));
FColorList.AddObject('palegoldenrod', TObject($EEE8AA));
FColorList.AddObject('palegreen', TObject($98FB98));
FColorList.AddObject('paleturquoise', TObject($AFEEEE));
FColorList.AddObject('palevioletred', TObject($DB7093));
FColorList.AddObject('papayawhip', TObject($FFEFD5));
FColorList.AddObject('peachpuff', TObject($FFDAB9));
FColorList.AddObject('peru', TObject($CD853F));
FColorList.AddObject('pink', TObject($FFC0CB));
FColorList.AddObject('plum', TObject($DDA0DD));
FColorList.AddObject('powderblue', TObject($B0E0E6));
FColorList.AddObject('purple', TObject($800080));
FColorList.AddObject('red', TObject($FF0000));
FColorList.AddObject('rosybrown', TObject($BC8F8F));
FColorList.AddObject('royalblue', TObject($4169E1));
FColorList.AddObject('saddlebrown', TObject($8B4513));
FColorList.AddObject('salmon', TObject($FA8072));
FColorList.AddObject('sandybrown', TObject($F4A460));
FColorList.AddObject('seagreen', TObject($2E8B57));
FColorList.AddObject('seashell', TObject($FFF5EE));
FColorList.AddObject('sienna', TObject($A0522D));
FColorList.AddObject('silver', TObject($C0C0C0));
FColorList.AddObject('skyblue', TObject($87CEEB));
FColorList.AddObject('slateblue', TObject($6A5ACD));
FColorList.AddObject('slategray', TObject($708090));
FColorList.AddObject('snow', TObject($FFFAFA));
FColorList.AddObject('springgreen', TObject($00FF7F));
FColorList.AddObject('steelblue', TObject($4682B4));
FColorList.AddObject('tan', TObject($D2B48C));
FColorList.AddObject('teal', TObject($008080));
FColorList.AddObject('thistle', TObject($D8BFD8));
FColorList.AddObject('tomato', TObject($FF6347));
FColorList.AddObject('turquoise', TObject($40E0D0));
FColorList.AddObject('violet', TObject($EE82EE));
FColorList.AddObject('wheat', TObject($F5DEB3));
FColorList.AddObject('white', TObject($FFFFFF));
FColorList.AddObject('whitesmoke', TObject($F5F5F5));
FColorList.AddObject('yellow', TObject($FFFF00));
FColorList.AddObject('yellowgreen', TObject($9ACD32));
end;

destructor TColorName.Destroy;
begin
FColorList.Free;
inherited;
end;
 
建议COMBOBOX只做显示颜色使用,TEXT为空。当点COMBOBOX时,进入选择颜色对话框来选择颜色。用中文来对应,太麻烦了,也没有必要,不就是选择方便吗,用颜色对话框不也可以吗。将COMBOBOX的COLOR属性设置成颜色对话框的颜色。
 
多人接受答案了。
 
后退
顶部