AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi akt. Bildschirmaktualisierungsrate abfragen

akt. Bildschirmaktualisierungsrate abfragen

Ein Thema von Schlingel · begonnen am 1. Jun 2003
Antwort Antwort
Schlingel

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

akt. Bildschirmaktualisierungsrate abfragen

  Alt 1. Jun 2003, 21: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
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:55 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz