Also ich würd das erstmal anders mit den Arrays deklarieren;
Delphi-Quellcode:
type
TBtnColors = array [0..3] of COLORREF;
TColorBntState = (cbsUp, cbsDown);
TColorButtonColors = (cbcRed, cbcBlue, cbcSilver);
TColorBtn = record
TextColor: COLORREF; // <--<<
Colors: array [TColorBntState] of TBtnColors;
end;
const
BtnColorDef : array [TColorButtonColors] of TColorBtn =
( // Red
(($D08C8CD2, $D050508A, $D007074C, $D014149D),
($D06F6FA9, $D04B4B64, $D01C1C2C, $D01F1F4A)
),
// Blue
(($D0D28C8C, $D08A5050, $D04C0707, $D09D1414),
($D0A96F6F, $D0644B4B, $D02C1C1C, $D04A1F1F)
),
// Silver
(($D0D2D2D2, $D08A8A8A, $D04C4C4C, $D09D9D9D),
($D0A9A9A9, $D0646464, $D02C2C2C, $D04A4A4A)
)
);
Hm...eigentlich hast du es ja schon die $-Zahlen sind ja schon Farben
TColorBtn steht doch für ein Button oder? und mit BtnColorDef machst du ja eine Ansammlung dieser Farben, für cbcRed, cbcBlue und cbcSilver.
So mit TextColor im Record hast du ja schon deine Textfarbe für den Button. Also weis ich nicht was du willst??
Oder hab ich das irgendwie voll falsch verstanden?