参考:http://blog.csdn.net/microzone/article/details/16947211type TRampArray = array[0..2] of array[byte] of word;
var origRampArray: TRampArray;
{...}
implementation
{...} function SetBrightness( wBrightness: word ): boolean; var RampArray: TRampArray; i, Value: integer; DC: HDC; begin for i := 0 to MAXBYTE do begin Value := i * ( wBrightness + 128 ); if ( Value > MAXWORD ) then Value := MAXWORD; RampArray[0][i] := Value; RampArray[1][i] := Value; RampArray[2][i] := Value; end;
DC := GetDC( 0 ); try Result := SetDeviceGammaRamp( DC, RampArray ); finally ReleaseDC( 0, DC ); end; end; procedure TForm1.FormCreate(Sender: TObject); var DC: HDC; begin DC := GetDC( 0 ); try GetDeviceGammaRamp( DC, origRampArray ); finally ReleaseDC( 0, DC ); end end; procedure TForm1.Button1Click(Sender: TObject); begin SetBrightness( 64 ); end; procedure TForm1.Button2Click(Sender: TObject); var DC: HDC; begin DC := GetDC( 0 ); try SetDeviceGammaRamp( DC, origRampArray ); finally ReleaseDC( 0, DC ); end end;
procedure TForm1.FormDestroy(Sender: TObject); begin Button2Click( Button2 ); end;
TRampArray = array[0..2] of array[byte] of word;
var origRampArray: TRampArray;
{...}
implementation
{...}
function SetBrightness( wBrightness: word ): boolean;
var
RampArray: TRampArray;
i, Value: integer;
DC: HDC;
begin
for i := 0 to MAXBYTE do
begin
Value := i * ( wBrightness + 128 );
if ( Value > MAXWORD ) then Value := MAXWORD;
RampArray[0][i] := Value;
RampArray[1][i] := Value;
RampArray[2][i] := Value;
end;
DC := GetDC( 0 );
try
Result := SetDeviceGammaRamp( DC, RampArray );
finally
ReleaseDC( 0, DC );
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
var
DC: HDC;
begin
DC := GetDC( 0 );
try
GetDeviceGammaRamp( DC, origRampArray );
finally
ReleaseDC( 0, DC );
end
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
SetBrightness( 64 );
end;
procedure TForm1.Button2Click(Sender: TObject);
var
DC: HDC;
begin
DC := GetDC( 0 );
try
SetDeviceGammaRamp( DC, origRampArray );
finally
ReleaseDC( 0, DC );
end
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
Button2Click( Button2 );
end;