解决方案 »

  1.   

    参考: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;