Thema: Delphi Gamma - Control

Einzelnen Beitrag anzeigen

THE MATRIX

Registriert seit: 26. Jul 2003
62 Beiträge
 
#1

Gamma - Control

  Alt 30. Mai 2004, 00:45
Hi @ll
ich hab mal google durchstöbert und das forum aber nicht wirklich fündig geworden

Ich habe ein C++ und ein VB Source gefunden der die GAMMA-CONTROL macht

Delphi-Quellcode:
void CGammaSlider::SetGamma(float Gamma)
{
   WORD ramp[256*3];

   for(int i = 0; i < 256; i++) {
      ramp[i] = ramp[i+256] = ramp[i+512] =
      (WORD)min(65535, max(0, pow((i+1) / 256.0, Gamma) * 65535 + 0.5));
   }


    SetDeviceGammaRamp(::GetDC(NULL), ramp);
}
das ist der C++ Source Code
ich hab das mal wiefolg übersetzt ( c++ ist nicht sooo mein ding )
Delphi-Quellcode:
procedure SetGamma(var Gamma: Double);
Var
Ramp: array[0 .. 255, 0 .. 2] of double;
nVal: double;
I: integer;
begin
 For I:= 0 To 255 do
  begin
   nVal:= ((((I + 1) / 256) * (1 / Gamma)) * 65535 + 0.5);
   Ramp[I, 0]:= nVal;
   Ramp[I, 1]:= nVal;
   Ramp[I, 2]:= nVal;
 end;
SetDeviceGammaRamp(GetDC(0), Ramp);
end;
Jedoch ändert sich mein Gamma gar nicht , wenn ich das setgamma aufrufe ( natürlich mit werten )
setgamma(20) z.b.

Ich hoffe hier sind ein paar die das vielleicht besser übersetzten können,damit es funktioniert - oder ob ich über ne function fürs SetDeviceGammaRamp genen muss , welches im moment in der windows.pas ist jedoch auch in der gdi32 ...

So ich pack an Anhang das C++ Compilte programm damit ihr seht das es funktioniert
Hoffe mir kann jemand helfen !
Angehängte Dateien
Dateityp: exe gammamanager.exe (20,0 KB, 50x aufgerufen)
§¤*~`~*¤§¤*~`~*¤§[* ((( THE MATRIX - Reloaded ))) ]§¤*~`~*¤§¤*~`~*¤§
  Mit Zitat antworten Zitat