已经知道了TColor的值,怎么转换成RGB值?

解决方案 »

  1.   

    看看这个例子你就知道了:
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      Form1.Canvas.Pen.Color := clRed;
      Memo1.Lines.Add('Red := ' +
                      IntToStr(GetRValue(Form1.Canvas.Pen.Color)));
      Memo1.Lines.Add('Red := ' +
                      IntToStr(GetGValue(Form1.Canvas.Pen.Color)));
      Memo1.Lines.Add('Blue := ' +
                      IntToStr(GetBValue(Form1.Canvas.Pen.Color)));
    end;
      

  2.   

    another way:var
      R, G, B: byte;
      s: string;
      col: TColor;
    begin
      s := IntToHex(col, 8);
      R := HexToInt(copy(s, 3, 2));
      G := HexToInt(copy(s, 5, 2));
      B := HexToInt(copy(s, 7, 2));
    end;
      

  3.   

    TColor 2 RGB:  function GetRValue(rgb: DWORD): Byte;
      function GetGValue(rgb: DWORD): Byte;
      function GetBValue(rgb: DWORD): Byte;
      

  4.   

    不是吧,用这么麻烦吗Delphi里面不是有函数ColorToRGB吗直接用这个函数不就可以了吗?