Ver Mensaje Individual
  #2  
Antiguo 06-11-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola JXJ.

Te pongo una función que te permite manejar el brillo. Para el ejemplo usé un TTrackBar que incrementa o decrementa el valor del argumento enviado, pero sin dificultad podés reemplazar su taréa por la combinación de teclas que desees:
Código Delphi [-]
procedure TForm1.FormCreate(Sender: TObject);
begin
  with TrackBar1 do
  begin
    TickStyle:= tsNone;
    Min:= 1;
    Max:= 255;
    Position:= 100;
  end;
end;

function AjustarBrillo(Brillo: Byte): Boolean;
var
  DC: HDC;
  lRamp: array[0..2, 0..255] of Word;
  i, Delta: Integer;
begin
  Result := False;
  DC := GetDC(0);  // obtener handle de screen
  if DC <> 0 then  // obtenido ?
  begin
    for i := 0 to 255 do
    begin
      Delta := i * (Brillo + 128);
      if Delta > 65535 then Delta := 65535; //evitar desborde
      lRamp[0, i]:= Delta;  // Red
      lRamp[1, i]:= Delta;  // Green
      lRamp[2, i]:= Delta;  // Blue
    end;
    Result := SetDeviceGammaRamp(DC, lRamp); // ajustar gama
    ReleaseDC(0, DC);  // liberar DC
  end;
end;

procedure TForm1.TrackBar1Change(Sender: TObject);
begin
  AjustarBrillo(TrackBar1.Position);
end;

Un saludo.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita