Ver Mensaje Individual
  #2  
Antiguo 23-11-2004
Avatar de Cabanyaler
Cabanyaler Cabanyaler is offline
Miembro
 
Registrado: jun 2003
Ubicación: País Valencià
Posts: 339
Reputación: 21
Cabanyaler Va por buen camino
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.
__________________
El meu país és tan petit, que des de dalt d'un campanar es pot veure el campanar veí.
Responder Con Cita