Ver Mensaje Individual
  #7  
Antiguo 12-10-2008
Avatar de MAXIUM
MAXIUM MAXIUM is offline
Miembro
 
Registrado: may 2005
Posts: 1.503
Reputación: 23
MAXIUM Va camino a la fama
Bien gracias, he solucionado el asunto en parte utilizando programas que me permiten resoluciones de este tipo como MultiRes o ResChanger.

Ahora me surge un inconveniente en este código. De partida, mi aplicación trabaja maximizada. Lo que hace es determinar si mi monitor o resolución es 4:3, si lo es, escala en base al área de trabajo (resolución de la pantalla excluyendo la barra de tareas).

Sino, quita la propiedad maximizada y la cambia a normal para luego proporcionar en base a las dimensiones de diseño.

Este es el punto donde topo, al dejar WindowState:= wsNormal, cada vez que intento darle una dimensión a la forma o escalarlo, este se maximiza.

Dicho de otro modo, mi programa debiera mantener su proporción 4:3 (como fue diseñado) y centrado horizontalmente en la pantalla.

Si hay dudas, me avisan y les hago un dibujo

Código Delphi [-]
procedure TForm1.FormCreate(Sender: TObject);
Const Proporcion = 4/3;
Var Area: TRect;
Begin
  // Redimensiona la aplicación en base a la resolución de la pantalla.
     SystemParametersInfo(SPI_GETWORKAREA, 0, @Area, 0);
     If (Screen.Width/Screen.Height) = Proporcion Then
         ScaleBy(Area.Bottom, Form1.Height)
     Else
     Begin
         Form1.WindowState:= wsNormal;
         Form1.Height:= Area.Bottom;
         ScaleBy(Area.Bottom, Form1.Height);
     End;

A todo esto, que es mas optimo, usar la API para determinar el área de trabajo o utilizar por ejemplo Screen.WorkAreaWidth
Responder Con Cita