Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Gráficos (https://www.clubdelphi.com/foros/forumdisplay.php?f=8)
-   -   centrar pantallas (https://www.clubdelphi.com/foros/showthread.php?t=56777)

sargento elias 27-05-2008 16:16:40

centrar pantallas
 
Buenas Tardes, tengo un problema con las resoluciones de Pantalla, yo he diseñado un programa y más o menos las pantallas salían centradas, pero cuando los instalo en otras máquinas con diferentes resoluciones a la mía una pantalla se me va a cuenca y la otra a lugo, y me gustaría que salieran centradas todas independientemente de la resolución si es posible claro, gracias.

duilioisola 27-05-2008 16:24:38

Suponiendo que utilizas Delphi...

Mira la propiedad position de los formularios.

position := poDesktopCenter;
position := poScreenCenter;

Hay más opciones, pero creo que una de estas te será de utilidad.

sargento elias 27-05-2008 16:26:15

sip
 
Gracias crack

BlueSteel 27-05-2008 16:39:18

Tambien se me presento ese problema...


Bueno, aparte de dejar todos los formularios con la opción de position := poScreenCenter


Algunos usuarios usan una resolución de 800x600 y mis sistemas los realizo a 1024x768, asi que tube que agregar esta funcion cuando ingreso al sistema

Código Delphi [-]
// Funcion que permite cambiar la resolución de la Pantalla
Function SetScreenResolution(Ancho, Altura: integer): Longint;
var
 DeviceMode: TDeviceMode;
begin
 with DeviceMode do begin
   dmSize := SizeOf(TDeviceMode);
   dmPelsWidth := Ancho;
   dmPelsHeight := Altura;
   dmFields := DM_PELSWIDTH or DM_PELSHEIGHT;
 end;
 Result := ChangeDisplaySettings(DeviceMode, CDS_UPDATEREGISTRY);
end;

y para llamarla utilizas esto..
Código Delphi [-]
 
 SetScreenResolution(1024, 768);

entonces la idea es preguntar si la resolución es de 800x600, si es verdadero, cambio a 1024x768... y dejo una variable para que me cambie a 800x600 cuando salga...

Salu2:p:D

sargento elias 27-05-2008 21:04:19

gracias
 
esa es mejor, gracias bluesteel

sargento elias 28-05-2008 17:00:51

Aun no lo he conseguido hacer funcionar, como haces para saber cual es la configuracion de cada monitor al iniciar el Programa? la llamada es suficiente en el menu de la aplicación o en cada pantalla?

sorry

BlueSteel 28-05-2008 17:23:54

Hola

mira si pones el sgte codigo en algun boton, te dará la resolución inicial de la pantalla...
Código Delphi [-]
Var ModoOriginal: TDevMode;
begin
     EnumDisplaySettings('\\.\Display1', Cardinal(-1), ModoOriginal);
     ShowMessage(IntToStr(ModoOriginal.dmPelsWidth));

es decir,
si es 800x600, te entregará 800
si es 1024x768, te entregará 1024, y así según tu configuración...

y podrias realizar una consulta como sigue.. si pones esto en un boton...

Código Delphi [-]
Var ModoOriginal: TDevMode;
begin
     EnumDisplaySettings('\\.\Display1', Cardinal(-1), ModoOriginal);
     If ModoOriginal.dmPelsWidth =1024 then PonResolucion(800,600);
espero que esto te sirva

Saludos:p:D

roman 28-05-2008 17:46:05

Pero que cosa más fea eso de andar cambiándole la resolución al usuario. Si su aplicación se va a usar en monitores con resolución baja entonces diséñenlos con eso en mente, por ejemplo, haciendo uso de la propiedad Anchors de los controles.

// Saludos


La franja horaria es GMT +2. Ahora son las 00:51:53.

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