Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Auflösung des Anwenders ändern (https://www.delphipraxis.net/53975-aufloesung-des-anwenders-aendern.html)

ferby 26. Sep 2005 17:57


Auflösung des Anwenders ändern
 
Hallo,

Ich weiß das es mehrere Beiträge zu diesen Thema schon gibt... leider finde ich keines mehr :-(

Deshalb nochmal:

Ich habe ein Computerspiel geschrieben das für die Auflösung 1024x768 optimiert wurde. Ich möchte, dass wenn ein Benutzer eine Andere Auflösung hat seine Auflösung auf 1024x768 gestellt wird. Allerdings so das beim Beenden des Spieles alles so ist wie vorher (Desktopdateien wieder am richtigen Platz, etc)

Kann mir jemand sagen wie ich sowas mach?


Danke,
Ferby

n0b0dy 26. Sep 2005 18:02

Re: Auflösung des Anwenders ändern
 
hi,

man müsste die IconPositionen speichern und später wieder laden. dazu hat Luckie ein prog auf seiner HP.vllt kann er ja bissle was dazu verraten ;) http://luckie-online.de/Programme/Lu...PS/index.shtml

oder isses das net, was du willst? :roll:


MfG

vlees91 26. Sep 2005 18:04

Re: Auflösung des Anwenders ändern
 
das geht so:
Delphi-Quellcode:
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
       // erst testen, bevor wir umschalten!
       case ChangeDisplaySettings(DeviceMode, CDS_TEST) of
         // es wird klappen!
         DISP_CHANGE_SUCCESSFUL:
           Result := True;

         DISP_CHANGE_RESTART:
           Showmessage('Neustart erforderlich');

         DISP_CHANGE_BADFLAGS:
           Showmessage('Ungültige Bildschirmeinstellungen');

         DISP_CHANGE_FAILED:
           Showmessage('Auflösung konnte nicht geändert werden');

         DISP_CHANGE_BADMODE:
           Showmessage('Bildschirm unterstützt diese Auflösung nicht');

         // Nur Windows NT
         DISP_CHANGE_NOTUPDATED:
           Showmessage('Registry konnte nicht aktualisiert werden');

       else
         Result := True;
       end;

       if Result then
         //jetzt wird umgeschaltet
         ChangeDisplaySettings(DeviceMode, CDS_FULLSCREEN)
     end;
   Inc(i);
 end;
end;
das ganze wird dann so aufgerufen:
Delphi-Quellcode:
ChangeResolution(800, 600, 16);
die icons kriegt man dann wie gesagt mit dem prog von luckie zurück...

ferby 26. Sep 2005 18:17

Re: Auflösung des Anwenders ändern
 
Hallo,

Zitat:

oder isses das net, was du willst? Rolling Eyes
so habe ich gesucht, nur gibt es da keine kürzere Möglichkeit??
bzw. machen es heutige 3D-Computerspiele auch so kompliziert?


Ferby

NicoDE 26. Sep 2005 18:21

Re: Auflösung des Anwenders ändern
 
Zitat:

Zitat von ferby
bzw. machen es heutige 3D-Computerspiele auch so kompliziert?

Nö, die benutzen die 3D-APIs und schalten in den Vollbildmodus mit der gewünschten Auflösung (um den Rest kümmert sich Windows).

faux 26. Sep 2005 18:23

Re: Auflösung des Anwenders ändern
 
Kann es sein, dass Windows automatisch wieder auf die vor dem Programmstart eingestellte Auflösung wechselt, nachdem das Programm beendet wurde? Ich habe mal sowas programmiert und da war das so... Kann auch sein, dass ich mich irre.

ferby 26. Sep 2005 18:26

Re: Auflösung des Anwenders ändern
 
Genau so was suche ich :-D

hoffe sowas gibt es auch

Sharky 26. Sep 2005 18:26

Re: Auflösung des Anwenders ändern
 
Zitat:

Zitat von NicoDE
..Nö, die benutzen die 3D-APIs und schalten in den Vollbildmodus mit der gewünschten Auflösung (um den Rest kümmert sich Windows).

Und ein Programm was einfach so meine Auflösung (ausser im Vollbildmodus) ändert würde keine 5 sekunden auf dem Rechner überleben ;-)

NicoDE 26. Sep 2005 18:30

Re: Auflösung des Anwenders ändern
 
Zitat:

Zitat von ferby
Ich möchte, dass wenn ein Benutzer eine Andere Auflösung hat seine Auflösung auf 1024x768 gestellt wird.

Nur mal so am Rande: Es gibt immer mehr Systeme auf denen es diese Auflösung nicht gibt.

vlees91 26. Sep 2005 18:39

Re: Auflösung des Anwenders ändern
 
welches denn?


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:07 Uhr.
Seite 1 von 2  1 2      

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