In the constructor of TGLStateCache in the file GLState.pas, FLightSpecular and FLightDiffuse are set to black for all lights. According to documentation of OpenGL, the default is white for the first light and black for all others. So the code should look like
if I = 0 then
FLightSpecular[I] := clrWhite; // default is white for the first light
FLightDiffuse[I] := clrWhite
FLightSpecular[I] := clrBlack;
FLightDiffuse[I] := clrBlack
Without the change the color is white even if you set the diffuse and specular colors to black. Please can you check this?
Thanks a lot!