AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Bildschirmauflösung und Farbtiefe ermitteln und ändern
Thema durchsuchen
Ansicht
Themen-Optionen

Bildschirmauflösung und Farbtiefe ermitteln und ändern

Ein Thema von gkoeder · begonnen am 15. Jun 2004 · letzter Beitrag vom 17. Jun 2004
Antwort Antwort
gkoeder

Registriert seit: 15. Jun 2004
84 Beiträge
 
Delphi 2010 Professional
 
#1

Bildschirmauflösung und Farbtiefe ermitteln und ändern

  Alt 15. Jun 2004, 16:17
Hallo!

weiß jemand zufällig, wie man per Code die Auflösung des Bildschirms (und ggf. die Bildwiederholrate) sowie die Farbtiefe erfassen und abändern kann?

Viele Grüße

Gerald
  Mit Zitat antworten Zitat
Neuni

Registriert seit: 25. Feb 2004
815 Beiträge
 
Delphi 7 Personal
 
#2

Re: Bildschirmauflösung und Farbtiefe ermitteln und ändern

  Alt 15. Jun 2004, 16:23
Delphi Source


http://www.delphi-source.de/tipps/system/?id=276

http://www.delphi-source.de/tipps/system/?id=287
  Mit Zitat antworten Zitat
gkoeder

Registriert seit: 15. Jun 2004
84 Beiträge
 
Delphi 2010 Professional
 
#3

Re: Bildschirmauflösung und Farbtiefe ermitteln und ändern

  Alt 15. Jun 2004, 16:35
Wow - danke für die schnelle Antwort! Hab' mir die Tipps gleich mal angeschaut; Für die Bildschirmauflösung gibts eine Lösung - nur mit dem setzen der Farbtiefe haperts noch ...

Viele Grüße
Gerald
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#4

Re: Bildschirmauflösung und Farbtiefe ermitteln und ändern

  Alt 15. Jun 2004, 17:01
Moin!

Is ja nicht das Ding...

Delphi-Quellcode:
function change_resolution(Const AWidth, AHeight, ABpp : Word): boolean;
var
  lpDevMode: TDeviceMode;
begin
  lpDevMode.dmFields := DM_PELSWIDTH or DM_PELSHEIGHT or DM_BITSPERPEL;
  lpDevMode.dmPelsWidth := AWidth;
  lpDevMode.dmPelsHeight := AHeight;
  lpDevMode.dmBitsPerPel := ABpp;
  Result := ( ChangeDisplaySettings(lpDevMode, CDS_UPDATEREGISTRY) = DISP_CHANGE_SUCCESSFUL );
end;
Und hier nochmal eine Deluxe Version, die die Bildwiederholfrequenz mitsetzt, aber nur, wenn du sie auch angibst, ansonsten ändert er nix an der Wiederholfrequenz (besser gesgt, er nimmt dann die Default).

Delphi-Quellcode:
Function change_resolution(Const AWidth, AHeight, ABpp : Word; Const ARefreshRate : Word = 0): Boolean;
Var
  lpDevMode: TDeviceMode;
Begin
  lpDevMode.dmFields := DM_PELSWIDTH or DM_PELSHEIGHT or DM_BITSPERPEL;
  lpDevMode.dmPelsWidth := AWidth;
  lpDevMode.dmPelsHeight := AHeight;
  lpDevMode.dmBitsPerPel := ABpp;

  If ( ARefreshRate > 0 ) Then
  Begin
    lpDevMode.dmDisplayFrequency := ARefreshRate;
    lpDevMode.dmFields := lpDevMode.dmFields Or DM_DISPLAYFREQUENCY;
  End;

  Result := ( ChangeDisplaySettings(lpDevMode, CDS_UPDATEREGISTRY) = DISP_CHANGE_SUCCESSFUL );
End;
MfG
Muetze1
  Mit Zitat antworten Zitat
gkoeder

Registriert seit: 15. Jun 2004
84 Beiträge
 
Delphi 2010 Professional
 
#5

Re: Bildschirmauflösung und Farbtiefe ermitteln und ändern

  Alt 17. Jun 2004, 19:36
Zitat von Muetze1:
Moin!

Is ja nicht das Ding...

Delphi-Quellcode:
function change_resolution(Const AWidth, AHeight, ABpp : Word): boolean;
var
  lpDevMode: TDeviceMode;
begin
  lpDevMode.dmFields := DM_PELSWIDTH or DM_PELSHEIGHT or DM_BITSPERPEL;
  lpDevMode.dmPelsWidth := AWidth;
  lpDevMode.dmPelsHeight := AHeight;
  lpDevMode.dmBitsPerPel := ABpp;
  Result := ( ChangeDisplaySettings(lpDevMode, CDS_UPDATEREGISTRY) = DISP_CHANGE_SUCCESSFUL );
end;
... snipp ...

MfG
Muetze1
Danke für den Tipp. Das ganze funktioniert richtig gut ... allerdings musste zu Beginn noch die Größe der Datenstruktur definieren ... sonst gibbets böse Falschmeldungen:

lpDevMode.dmSize := SizeOf(lpDevMode);

MfG
Gerald
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#6

Re: Bildschirmauflösung und Farbtiefe ermitteln und ändern

  Alt 17. Jun 2004, 20:56
Moin!

Zitat von gkoeder:
... allerdings musste zu Beginn noch die Größe der Datenstruktur definieren ... sonst gibbets böse Falschmeldungen:

lpDevMode.dmSize := SizeOf(lpDevMode);
Ach Mist! Stimmt - das kommt davon wenn man irgendwelche Links folgt und die nur abändert.

MfG
Muetze1
  Mit Zitat antworten Zitat
Antwort Antwort


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 04:41 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