TColor 內部為 RGB 值,可用 Win32 宏提取各分量 (0-255),修改後重新組合指派回 Color 屬性。
void __fastcall TForm1::Button1Click(TObject *Sender)
{
BYTE nRed = GetRValue(Color);
BYTE nGreen = GetGValue(Color);
BYTE nBlue = GetBValue(Color);
nRed += 10;
nBlue -= 10;
nGreen = static_cast(nGreen * 1.05);
Color = (TColor)RGB(nRed, nGreen, nBlue);
}
Get*Value 實為 C 風格巨集 (定義於 wingdi.h),非類型安全,傳入錯誤型別不會警告。BYTE (0-255);若運算結果超出範圍,RGB 宏只取低 8 位元自動截斷。Color 設為非系統色 (如 clBlue, clNavy) 才能明顯觀察變化。