Autor Beitrag
Psychoholic
Hält's aus hier
Beiträge: 7



BeitragVerfasst: Sa 05.10.02 12:19 
Hallo! Ich habe folgendes Problem. Ich möchte die Bildschirmauflösung ändern. Dies geht mit einer kleinen Funktion dieser Art ganz einfach:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
function change_resolution(width, height: word): boolean;
var lpDevMode: TDeviceMode;
begin
  Result := EnumDisplaySettings(nil0, lpDevMode);
  if Result then begin
    lpDevMode.dmFields := DM_PELSWIDTH or DM_PELSHEIGHT;
    lpDevMode.dmPelsWidth := width;
    lpDevMode.dmPelsHeight := height;
    Result := ChangeDisplaySettings(lpDevMode, CDS_UPDATEREGISTRY) = DISP_CHANGE_SUCCESSFUL;
  end;
end;

Nur mein Monitor schaltet beim Wechsel immer auf eine niedrigere Bildschirmfrequenz um. Wie kann ich dies verhindern bzw. von Delphi wieder einstellen lassen?

Grüße, Roland

(07.10.02 10:36 Tino) Code-Tags hinzugefügt.
Moderiert von user profile iconUGrohne: Code- durch Delphi-Tags ersetzt
LCS
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1305
Erhaltene Danke: 1

WIN 7, WIN 8
Delphi XE5, Delphi XE, Delphi 2007
BeitragVerfasst: Mo 07.10.02 08:05 
Hi
im Grunde genommen könntest du mit ChangeDisplaySettings auch die Bildwiederholfrequenz ändern.
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
Result := EnumDisplaySettings(nil0, lpDevMode); 
if Result then begin 
  lpDevMode.dmFields := DM_PELSWIDTH or DM_PELSHEIGHT or DM_DISPLAYFREQUENCY; 
  lpDevMode.dmPelsWidth := width; 
  lpDevMode.dmPelsHeight := height; 
  lpDevMode.dmDisplayFrequency := Wiederholfrequenz; 
  Result := ChangeDisplaySettings(lpDevMode, CDS_UPDATEREGISTRY) = DISP_CHANGE_SUCCESSFUL; 
end;

Welche Wiederholfrequenzen bei welcher Auflösung zulässig sind, musst du vorher allerdings selbst ermitteln indem du EnumDisplaySettings auswertest.

Gruss Lothar

Moderiert von user profile iconUGrohne: Code- durch Delphi-Tags ersetzt

_________________
Der BH ist für die Brust, der Plan ist für'n Ar...