如果是一个单一的颜色,例如 clWhite, clBlue 之类的,可以获得 RGB,只要按照字节分一下就可以了,但是系统定义的颜色却不知道如何处理了,例如 clBtnFace 的数值是 $8000000F,这个东西在系统使用不同的外观方案时,是不同的,如何得到这个 RBG 值呢?搜索了一下以前的帖子,好象没有看到,所以请各位高手帮忙!谢谢!

解决方案 »

  1.   

    --
    pocedure TForm1.Button1Click(Sender: TObject);
    begin
      Form1.Canvas.Pen.Color := clBtnFace;
      Memo1.Lines.Add('Red := ' +
                      IntToStr(GetRValue(Form1.Canvas.Pen.Color)));
      Memo1.Lines.Add('Green := ' +
                      IntToStr(GetGValue(Form1.Canvas.Pen.Color)));
      Memo1.Lines.Add('Blue := ' +
                      IntToStr(GetBValue(Form1.Canvas.Pen.Color)));
    end; 
    ---
      

  2.   

    ColorToRGB() + GetRValue() + GetGValue() + GetBValue()