You can use WIN API function GetDeviceCaps() to calculate the number of colors supported by the current video mode. To make it even easier to use, here's a function that will simply return the number of maximum simultaneous colors current video device can handle:
function GetColorsCount : integer; var h : hDC; begin Result := 0; try h := GetDC( 0 ); Result := 1 shl ( GetDeviceCaps( h, PLANES ) * GetDeviceCaps( h, BITSPIXEL ) ); finally ReleaseDC( 0, h ); end; end;