Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 18-02-2011
mantraxer21 mantraxer21 is offline
Miembro
 
Registrado: ago 2010
Posts: 94
Poder: 14
mantraxer21 Va por buen camino
Establecer mi programa de 1024x768

Estimaados:

Quiero dejar mi aplicación para que funcione de 1024x768, de lo contrario enviar un mensaje al usuario para informar dicha resolución de trabajo.

He leido algo por ahi referente a los "Const"

const
RESOLUCION_HORIZONTAL: LongInt = 1024;
RESOLUCION_VERTICAL: LongInt = 768;

Y de Screen.Width y de Screen.Height

pero no me ha resultado mucho que digamos .


Saludos Cordiales
Responder Con Cita
  #2  
Antiguo 18-02-2011
Avatar de defcon1_es
defcon1_es defcon1_es is offline
Miembro
 
Registrado: mar 2004
Ubicación: Cuenca - España
Posts: 533
Poder: 21
defcon1_es Va por buen camino
¿Y por qué no la cambias tu?

Hola, puedes forzar la resolución de tu programa, sin necesidad de informar al usuario.

Código Delphi [-]
unit Varios;

var
  Resoriginal: TDevMode; //Variable Global, para restaurar la resolución al cerrar la aplicacion
Resolucion_Horizontal, Resolucion_Vertical: Cardinal; //Variables para cargar la resolucion actual

...

procedure ComprobarResolucion(Restaurar: Boolean);
var NuevaRes:TDevMode;
begin
  if (Resolucion_Horizontal <> 0) and (Resolucion_Vertical <> 0)
  then begin
    if Restaurar
    then begin
      Windows.ChangeDisplaySettings(Resoriginal, CDS_UPDATEREGISTRY);
    end
    else begin
      // Añadido para la resolución
      // Guarda la resolución actual
      Windows.EnumDisplaySettings(Nil, Cardinal(-1), NuevaRes);
      // Si la resolución es diferente de 1024x768, la cambia
      If ( NuevaRes.dmpelsWidth  <> Cardinal(Resolucion_Horizontal) ) or
         ( NuevaRes.dmpelsheight <> Cardinal(Resolucion_Vertical) )
      then begin
        Windows.EnumDisplaySettings(Nil, Cardinal(-1), NuevaRes);
        NuevaRes.dmpelsWidth  := Resolucion_Horizontal;
        NuevaRes.dmPelsHeight := Resolucion_Vertical;
        if Windows.ChangeDisplaySettings(NuevaRes, CDS_UPDATEREGISTRY) <> 0
        then begin
          Resolucion_Horizontal := Resoriginal.dmpelsWidth;
          Resolucion_Vertical   := Resoriginal.dmPelsHeight;
          Windows.ChangeDisplaySettings(Resoriginal, CDS_UPDATEREGISTRY);
        end;
      end;
    end;
  end
  else begin
    Resolucion_Horizontal := Resoriginal.dmpelsWidth;
    Resolucion_Vertical   := Resoriginal.dmPelsHeight;
  end;
end;
__________________
Progress Openedge
https://abevoelker.com/progress_open...dered_harmful/


Delphi forever...

Última edición por defcon1_es fecha: 18-02-2011 a las 16:58:02.
Responder Con Cita
  #3  
Antiguo 18-02-2011
Avatar de defcon1_es
defcon1_es defcon1_es is offline
Miembro
 
Registrado: mar 2004
Ubicación: Cuenca - España
Posts: 533
Poder: 21
defcon1_es Va por buen camino
Se me olvidó poner que en el Create de tu aplicación debes poner el código:
Código Delphi [-]
  
// Guarda la resolución original de windows antes forzarla a la que queramos
    Windows.EnumDisplaySettings(Nil, Cardinal(-1), Varios.ResOriginal);
Para guardar la resolución de windows antes de forzarla, y restaurarla al salir de tu programa.
__________________
Progress Openedge
https://abevoelker.com/progress_open...dered_harmful/


Delphi forever...
Responder Con Cita
  #4  
Antiguo 18-02-2011
Avatar de newtron
[newtron] newtron is online now
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.473
Poder: 21
newtron Va camino a la fama
Wink

Yo lo que hago cuando necesito una resolución determinada es lo siguiente:

1º capturo la resolución actual

AnchoOriginal := GetSystemMetrics(SM_CXSCREEN);
AlturaOriginal := GetSystemMetrics(SM_CYSCREEN);

2º fuerzo la resolución a 1024x768

If (GetSystemMetrics(SM_CXSCREEN)<>1024) or (GetSystemMetrics(SM_CYSCREEN)<>768) then
SetScreenResolution(1024,768);

3º al cerrar lo dejo como estaba

SetScreenResolution(AnchoOriginal, AlturaOriginal);

Saludos
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
SQLITE:Establecer Contraseña a mi db bitbow Conexión con bases de datos 0 17-09-2010 23:48:34
Establecer un programa para una extension Khronos Varios 10 17-08-2007 01:43:51
Establecer a nulo un parámetro efelix Conexión con bases de datos 8 28-10-2006 16:18:59
establecer una impresora Rafa Impresión 1 18-10-2003 00:24:54
establecer el left y el top de un laber en runtime tango01 Impresión 5 13-06-2003 22:10:15


La franja horaria es GMT +2. Ahora son las 09:48:19.


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
Copyright 1996-2007 Club Delphi