Custom Delphi Colours
Asked Answered
D

4

14

If i want to set a colour property to something thats non-standard (i.e. not something like clBlack or clRed) how can i do this? Can i set something like hexadecimal colours?

Dissipation answered 18/3, 2010 at 15:17 Comment(0)
P
16

RGB in Windows.pas

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

you can cast the result to be a TColor.

e.g

MyColour := TColor(RGB(Red,Green,Blue));
Pulsometer answered 18/3, 2010 at 15:35 Comment(1)
Normally, casting is done implicitly. A COLORREF and a TColor both are 32-bit integers. Hence, MyColour := RGB(Red,Green,Blue); will work just fine.Sandpiper
L
12

you can use $00BBGGRR

BB = Blue
GG = Green
RR = Red

All these values can be between 0 and 255 ($00 and $FF)

Leomaleon answered 18/3, 2010 at 15:30 Comment(2)
I tried this, but it worked for me only if I used $FF on the beginning - so $FFBBGGRRIdolatrize
@Asped: No, the highest byte in the DWORD should be 0 for a normal colour. But maybe you are using colours with an alpha channel? If so, $FF is probably full opacity. But alpha isn't normally used in Win32 GDI.Sandpiper
S
3

I always used RGB macro: http://delphi.wikia.com/wiki/RGB

Superfine answered 18/3, 2010 at 15:19 Comment(0)
D
0

You might also want to check Colors in Delphi help page. If might be useful for Delphi developers who do web programming because Vcl.Graphics unit defines TColor values as clWeb____ web-friendly constants.

Many constants are already predefined and before you use them you can visually see how the colors look like. So there is no need to do RBG "mixes".

Description answered 1/6, 2017 at 10:36 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.