Entwickler-Ecke

Sonstiges (Delphi) - Bildschirmauflösung ändern


hibbert - Fr 26.07.02 12:49
Titel: Bildschirmauflösung ändern
hi,
hab schon überall danach gesucht, aber nichts gefunden.
kann ir jamand sagen, wieich die aktuelle bildschirmauflösung ändern kann.
danke.
mfg hibbert


wwerner - Fr 26.07.02 12:58

http://www.swissdelphicenter.ch/de/showcode.php?id=158


DeCodeGuru - Fr 26.07.02 12:59

Hi hibbert,

folgenden Code habe ich im Internet gefunden:


Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
Function ChangeResolution(sizex,sizey,bpp: DWORD):Boolean;
var
  DeviceMode:TDeviceModeA;
  i:Integer;
Begin
  i:=0;
  Result:=False;
  while EnumDisplaySettings(nil,i,DeviceMode) do begin
    with DeviceMode do
      if (dmPelsWidth=sizex) and 
         (dmPelsHeight=SizeY) and 
         (dmBitsPerPel=bpp) then begin
        case ChangeDisplaySettings(DeviceMode, CDS_TEST) of 
          DISP_CHANGE_SUCCESSFUL: 
            Result:=True;
          DISP_CHANGE_RESTART:
            Showmessage('You have to restart'); 
          DISP_CHANGE_BADFLAGS:
            Showmessage('Bad display mode flags');
          DISP_CHANGE_FAILED:
            Showmessage('Failed in changing resolution');
          DISP_CHANGE_BADMODE:
            Showmessage('Display mode not supported');
          DISP_CHANGE_NOTUPDATED:
            Showmessage('Registry could not be updated');

        else Result:=true;
        end;

        if Result then 
          ChangeDisplaySettings(DeviceMode, CDS_FULLSCREEN)
      end;
    Inc(i);
  end;
End;

procedure TForm1.Button1Click(Sender: TObject);
begin
  ChangeResolution(1024,786,16);
end;


Ich weiss allerdings nicht, ob er funktioniert. Wenn ja, sags mir bitte.


Delete - Fr 26.07.02 15:43

Sollte er eigentlich, denn er steht in der Form im EDH, und außerdem habe ich ihn (Anm. des Schreibers: den Code aus dem EDH :wink:) mal benutzt, um das C-Programm aus dem PC MAGAZIN 2/2002 nach Delphi umzusetzen.

Der Redakteur des Artikels war begeistert, dass das C-Programm (Anm. #2: nicht von mir!) 40k groß war.
Die Delphi-Version ist gut die Hälfte kleiner. 8)
Aber ich denke mal, die C-Version ließe sich auch noch optimieren.