Ver Mensaje Individual
  #11  
Antiguo 16-12-2010
Avatar de gluglu
[gluglu] gluglu is offline
Miembro Premium
 
Registrado: sep 2004
Ubicación: Málaga - España
Posts: 1.455
Reputación: 21
gluglu Va por buen camino
En su momento, hice varias pruebas, y finalmente deduje que la función GetSystemsMetrics siempre me devolvía (si no mal recuerdo) el valor 1, o un valor raro.

Probando con XP y W7 aparecían incongruencias que no podía controlar.

Lo que entonces decidí fue que la opción que me funcionaba correctamente era Width - ClientWidth, tal y como explicaban algunos compañeros, pero ajustando los Constraints correspondientes posteriormente.

El planteamiento inicial era erroneo. No debía partir de unos valores de altura y anchura de ventana, incluyendo el borde, y después ajustar esos valores dependiendo del S.O.. Lo que tenía que hace era fijar los valores de ancho y alto de mi ventana según el cliente, y después dejar que el S.O. correspondiente fijara el borde que él quisiera, incluso teniendo en cuenta los valores que el usuario hubiera podido haber cambiado en el propio S.O. para todas las demás ventanas.

Lo que pasa es que en diseño, uno se fija más en los valores totales de un Form, que en los valores del Client, por lo menos en mi caso. Y eso me indujo al error cometido.

Ahora lo que hago, es determinar los valores del Client, en ancho y alto, y después de que el S.O. haya creado la ventaja, fijo los valores máximos de constraints :

Código Delphi [-]
ClientHeight          := 547;
ClientWidth           := 925;
Constraints.MaxHeight := Height;
Constraints.MaxWidth  := Width;

Espero que esta aclaración haya servido respecto del problema inicial.
__________________
Piensa siempre en positivo !
Responder Con Cita