Einzelnen Beitrag anzeigen

Schlingel

Registriert seit: 15. Feb 2003
Ort: Österreich
67 Beiträge
 
Delphi XE2 Professional
 
#1

akt. Bildschirmaktualisierungsrate abfragen

  Alt 1. Jun 2003, 20:10
Hallo

ich bräuchte einen Tipp zur Abfrage der Bildschirmfrequenz..

-> in meinem Programm (Graphik) habe ich festgestellt, das mit einer bestimmten Desktop-Einstellung (1024/728,65535 Farben, 72Hz) eine optimale Darstellung und !!! eine um ~200% höhere Performance als mit besseren/höheren Einstellung erreicht wird.

--> daher dachte ich mir:

beim Programmstart lese ich o.a. Einstellungen ein / schalte auf opt. Einstellungen um... bei Programmende setze ich auf ursprüngliche Einstellung.

Nur diese Frequenzabfrage bringt mich noch zum verzweifeln...

Einlesen Bildschirmauflösung:

screenwidth:=Screen.Width; screenheight:= Screen.Height; Einlesen Farbtiefe:

Delphi-Quellcode:
function TMainForm.GetPaletteDepth: string;
var
  DesktopDC: HDC;
  BitsPerPixel: Integer;
begin
  DesktopDC := GetDC(0);
  BitsPerPixel := GetDeviceCaps(DesktopDC, BITSPIXEL);
  case BitsPerPixel of
    4 : Result := '16 Farben (4-Bit Farbtiefe)';
    8 : Result := '256 Farben (8-Bit Farbtiefe)';
    16: Result := '64k Farben (16-Bit Farbtiefe)';
    24: Result := '16M Farben (24-Bit Farbtiefe)';
    32: Result := 'True Color (32-Bit Farbtiefe)';
  end;
  ReleaseDC(0, DesktopDC);
end;
Setzen von Auflösung/Farbtiefe und Frequenz:

Delphi-Quellcode:
function TMainForm.AnotherScreen(Width, Height: Word; BitsPerPixel, DisplayFrequency: Integer):Boolean;
var
  DeviceMode : TDevMode;
begin
with DeviceMode do
begin
  dmSize:=SizeOf(DeviceMode);
  dmBitsPerPel:=BitsPerPixel;
  dmPelsWidth:= Width;
  dmPelsHeight:= Height;
  dmDisplayFrequency:=DisplayFrequency;
  dmFields:=DM_BITSPERPEL or DM_PELSWIDTH or DM_PELSHEIGHT or DM_DISPLAYFREQUENCY;
  Result:=ChangeDisplaySettings(DeviceMode,CDS_UPDATEREGISTRY) = DISP_CHANGE_SUCCESSFUL;
end;end;
Danke im Voraus
  Mit Zitat antworten Zitat