Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Gráficos (https://www.clubdelphi.com/foros/forumdisplay.php?f=8)
-   -   ¿Adaptar a cualquier resolución o cambiar a la que to quiera? (https://www.clubdelphi.com/foros/showthread.php?t=16290)

Jan_polero 23-11-2004 11:15:00

¿Adaptar a cualquier resolución o cambiar a la que to quiera?
 
Hola a todos,´mi intención es hacer un pequeño juego que se adaptase a cualquier resolución de pantalla. Por ello, me gustaría que me facilitaseis algunos aspectos a tener en cuenta.O si convendría más adaptar la resolución a la que yo quiera,gracias.

Cabanyaler 23-11-2004 11:37:35

Voy a exponerte lo que yo hago en mis aplicaciones. primero controlo la resolución que tiene el usuario y le pongo la que yo deseo (presuponiendo que la targeta gráfica la soporte). Al salir repongo la resolución que tenía.
Una mejora (como posible ejercicio de repaso ;) ), podría ser el implementar la reposición de la resolución del usuario al minimizar también la aplicación, poniendo la deseada de nuevo al magnificarla.
Indicaré el código y la unidad donde incluirlo.
Espero te sirva.


Lugar: Unidad principal del proyecto, donde se lanza la aplicación.
Código Delphi [-]
var
  // Añadido para la resolución
  ResOriginal:TDevMode;
  NuevaRes:TDevMode;
  // Fin Añadido para la resolución
  cambio:boolean;      // Var. bandera para saber si he cambiado la resolución


Lugar: Unidad principal del proyecto, donde se lanza la aplicación. Justo despues del begin de comienzo del principal.
Código Delphi [-]
begin
   // Añadido para la resolución
   cambio:= false;
   // Guarda la resolución original
   EnumDisplaySettings(Nil,Cardinal(-1),ResOriginal);
   // Si la resolución es diferente de 1024x768, la cambia
   If ((Resoriginal.dmpelsWidth<>1024) or (Resoriginal.dmpelsheight<>768))
   then
   begin
      EnumDisplaySettings(Nil,Cardinal(-1),NuevaRes);
      NuevaRes.dmpelsWidth :=1024;
      NuevaRes.dmPelsHeight:=768;
      ChangeDisplaySettings(NuevaRes,CDS_UPDATEREGISTRY);
      cambio:= true;
   end;
   // Fin añadido por la resolución


Lugar: Unidad principal del proyecto, en la última línea del cuerpo principal.
Código Delphi [-]
// Restaura la resolución original
  if cambio then ChangeDisplaySettings(Resoriginal,CDS_UPDATEREGISTRY);

Espero no haberme dejado nada.
Sort.


La franja horaria es GMT +2. Ahora son las 01:55:40.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi