PDA

Ver la Versión Completa : centrar pantallas


sargento elias
27-05-2008, 16:16:40
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
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

// 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..

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
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...

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...

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