Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi akt. Bildschirmaktualisierungsrate abfragen (https://www.delphipraxis.net/5322-akt-bildschirmaktualisierungsrate-abfragen.html)

Schlingel 1. Jun 2003 21:10


akt. Bildschirmaktualisierungsrate abfragen
 
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:

Delphi-Quellcode:
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


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:41 Uhr.

Powered by vBulletin® Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf