【问题标题】:Custom Delphi Colours自定义德尔福颜色
【发布时间】:2010-03-18 15:17:15
【问题描述】:

如果我想将颜色属性设置为非标准的东西(即不是 clBlack 或 clRed 之类的东西),我该怎么做?我可以设置十六进制颜色吗?

【问题讨论】:

    标签: delphi colors delphi-7


    【解决方案1】:

    Windows.pas 中的 RGB

    function RGB(r, g, b: Byte): COLORREF;
    

    您可以将结果转换为 TColor。

    例如

    MyColour := TColor(RGB(Red,Green,Blue));
    

    【讨论】:

    • 通常,强制转换是隐式完成的。 COLORREF 和TColor 都是 32 位整数。因此,MyColour := RGB(Red,Green,Blue); 可以正常工作。
    【解决方案2】:

    您可以使用 $00BBGGRR

    BB = 蓝色
    GG = 绿色
    RR = 红色

    所有这些值都可以在 0 到 255 之间($00 和 $FF)

    【讨论】:

    • 我试过这个,但只有在我开始使用 $FF 时它才对我有用 - 所以 $FFBBGGRR
    • @Asped:不,对于正常颜色,DWORD 中的最高字节应该是 0。但也许您正在使用带有 Alpha 通道的颜色?如果是这样, $FF 可能是完全不透明的。但在 Win32 GDI 中通常不使用 alpha。
    【解决方案3】:

    我一直使用 RGB 宏:http://delphi.wikia.com/wiki/RGB

    【讨论】:

      【解决方案4】:

      您可能还想查看Colors in Delphi 帮助页面。 If 可能对从事 Web 编程的 Delphi 开发人员有用,因为 Vcl.Graphics 单元将 TColor 值定义为 clWeb____ 网络友好的常量。

      许多常量已经预定义,在您使用它们之前,您可以直观地看到颜色的样子。所以没有必要做 RBG “混合”。

      【讨论】:

        猜你喜欢
        • 2014-07-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-07-02
        • 2011-10-04
        • 2012-12-13
        相关资源
        最近更新 更多