Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Cambiar resolucion de windows (https://www.clubdelphi.com/foros/showthread.php?t=88012)

emeritos 01-04-2015 12:28:13

Cambiar resolucion de windows
 
Hola Dilferos.

Estoy utilizando delphi7 y me gustaria que al entrar en mi programa cambiase la resolucion de windows y al salir restaurarla. ¿ Como lo puedo hacer?

Gracias.

newtron 01-04-2015 12:42:25

Hola.

Código Delphi [-]
// Lee configuración actual
XActual := GetSystemMetrics(SM_CXSCREEN);
YActual := GetSystemMetrics(SM_CYSCREEN);

 // Pone resolución a 1024x768
SetScreenResolution(1024,768);

// Restaura resolución original
SetScreenResolution(XActual,YActual);

Saludos

Neftali [Germán.Estévez] 01-04-2015 13:17:28

No se de qué tipo es tu programa y cual es el funcionamiento del día a día, pero me pregunto:
¿No sería más fácil ajustar tu programa a la resolución del sistema, que cambiar la resolución del sistema a tu programa?
:confused::o

¿Qué pasará con el resto de programa que están funcionando?
¿Qué pasa cuando el usuario hace ALT + TAB?
¿Sistemas Multimonitor?
¿Monitores secundarios?
...

emeritos 01-04-2015 13:31:23

Eso lo he intentadop mil veces y por alguna razon en algunas resoluciones no me funciona.Por ejemplo yoprogramo con una resolucion de 1600X900 y al ejecutarse lo puede hacer enn 1600X900, 1280X1024, 1280*768, 1024*768. Pues bien el la primera no funciona biebn y yo lo realizo: (los compomentes de la pantalla no tiene nada de especial)
Código Delphi [-]

procedure Tfrmprincipalpista.FormCreate(Sender: TObject);
begin
    ScaleForm(frmprincipalmesa,1600,900);


end;

procedure ScaleForm(F: TForm; ScreenWidth, ScreenHeight: LongInt);
begin
   F.Scaled := True;
   F.AutoScroll := False;
   F.AutoSize := False;
   F.Position := poScreenCenter;
   F.Font.Name := 'Arial';
   If (Screen.Width <> ScreenWidth) OR (Screen.Height <> ScreenHeight)
      Then
         Begin
             F.Height := LongInt(F.Height) * LongInt(Screen.Height) div ScreenHeight;
             F.Width := LongInt(F.Width) * LongInt(Screen.Width) div ScreenWidth;
             //F.ScaleBy(Screen.Width,ScreenWidth)
             F.ScaleBy(Screen.Height,ScreenHeight);
         End;
end;

Gracias.

emeritos 01-04-2015 13:36:45

Me sale un error en la funcion SetScreenResolution de no declarado.

Neftali [Germán.Estévez] 01-04-2015 13:50:48

Cita:

Empezado por emeritos (Mensaje 490743)
Eso lo he intentadop mil veces y por alguna razon en algunas resoluciones no me funciona.

¿No será porque dependerá de las resoluciones que admita el dispositivo destino (Tarjeta/Monitor)?

ecfisa 01-04-2015 14:13:15

Hola emeritos.
Cita:

Empezado por emeritos (Mensaje 490745)
Me sale un error en la funcion SetScreenResolution de no declarado.

Para Delphi 7, revisa estos enlaces:
Pero, ¿ cambiar la resolución del S.O para que se ajuste a tu aplicación ? no me parece buena idea...

Saludos :)


La franja horaria es GMT +2. Ahora son las 04:42:49.

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