#00ff00 与 color格式转换问题(100分)

  • 主题发起人 youwater
  • 开始时间
Y

youwater

Unregistered / Unconfirmed
GUEST, unregistred user!
网页中的颜色表示用"#xxxxxx",我想把它赋值给edit.color,应该怎么做,不胜感激。
 
直接edit.color:=xxxxxx;就可以了
 
to 来如风

不行了啦,edit.color := $xxxxxxxx;倒是可以,但这不是标准的网页颜色表示法,不直
观,应该怎么转呢?我知道edit.color转成 #xxxxxx可以这样做:
webcolor:='#'+inttohex(getrvalue(edit.Color),2)+inttohex(getgvalue(edit.Color),2)+inttohex(getbvalue(edit.Color),2);
但反过来就不懂了,哪位兄弟知道的帮个忙。
 
没有关系的,你直接xxxxxx(6个x)肯定可以的,不信你可以试试嘛
 
我用f替代x,出错"Undeclared identifier: 'ffffff'",从语法上分析这都不可能对的啊?
 
网页中的颜色和delphi中的颜色的关系是:ABC<--->BCA
所以如果网页颜色是#FF00EE,则在delphi中表示为:$00EEFF
 
to huazai
不对吧,delphi中的$xxxxxxxx应该是8个数字啊
 
我说的6个x是十进制的数字,具体可以有多少位我不知道,
反正我以前需要要渐变色的时候就是这么搞的
 
function Htm2Color(Color: DWORD): TColor;
var
s: string;
begin
s := IntToHex(ColorToRGB(Color),6);
s := Copy(s,5,2)+Copy(s,3,2)+Copy(s,1,2);
Result := strtoint('$'+s);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
Color := Htm2Color($008080);
end;
 
to zw84611
网页颜色是#xxxxxx表示的,不是$xxxxxx表示的啊,若我知道$008080,直接赋给edit.color
就是了,根本就不必再搞个htm2color啊。
 
注意从HTM颜色到TColor是要一个变换的,上面的公式就是这个变换。
你直接把$008080赋给edit.color看颜色一样吗?
你把用程序把#xxxxxx变换成$xxxxxx就是了。
 
好,我试试
 
在调Htm2Color时出错“Incompatible types: 'Cardinal' and 'WideChar'”
我的调用方法是:edit.Color := Htm2Color(#008080);
 
edit.Color := Htm2Color($008080);
你要把#改成$
 
问题是我的原始格式是#xxxxxx,而不是$xxxxxx,单只把字符#改成$是不行的。
 
faint!

var
ColorStr: string;
begin
ColorStr := '#008080';
ColorStr[1] := '$';
edit.Color := Htm2Color(strtoint(ColorStr));
end;
 
解决了,谢谢zw84611。
 
顶部