FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
Muchísimas gracias a todos por vuestra ayuda. Me ha servido mucho.
El problema viene principalmente por el hecho de que mis forms con un borde de ventana tienen un tamaño predefinido por diseño, y utilizo además los 'Constraints' precisos para delimitar el tamaño máximo. Este hecho, me define como muy bien habeis indicado, el tamaño del 'Client' y con las propiedades que indicais puedo hallar el tamaño del borde de la ventana. El problema viene, tal y como indiqué, cuando porto la aplicación de Windows Xp a Windows 7. Resulta entonces que mi tamaño máximo de Form, definido en mis Constraints, es fijo, y dado que Windows 7 me modifica el tamaño del borde de la ventana respecto de Windows XP, entonces el resultado es que el 'Client' se reduce en algunos píxeles, y este es precisamente el hecho que quiero evitar. No es tanto por el tamaño del 'Client' que se vé reducido, sino este cambio se aprecia sobre todo y considerablemente cuando en determinadas partes del programa tengo que superponer ventanas a un form, tomando como referencia el borde izquierdo del 'Client'. Al ser dos forms diferentes, la referencia que tomaba es la que me daba Windows XP, sin saber que Windows 7 me cambiaría ese ancho de borde. Al cambiarlo, el left del nuevo form con respecto al form inferior, que ahora tiene un borde más ancho, es diferente. Por eso, y concluyendo, entiendo que aunque con las propiedades Width y ClientWidth puede conocer el ancho del borde, en mi caso, y por las particularidades que indico, debo de uitlizar la función GetSystemMetrics del Api de Windows. Gracias de nuevo a todos por vuestra ayuda.
__________________
Piensa siempre en positivo ! |
#2
|
||||
|
||||
Puedo preguntar qué parámetros pasas a GetSystemMetrics para lograr tu objetivo, y cuál sería la diferencia entre, por ejemplo, Width - ClientWidth y GetSystemMetrics(SM_CXBORDER)?
__________________
...y mañana caminaré por las calles pasando inadvertido, como siempre. |
#3
|
||||
|
||||
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 :
Espero que esta aclaración haya servido respecto del problema inicial.
__________________
Piensa siempre en positivo ! |
#4
|
||||
|
||||
Excelente, de eso se trata. Voy a probarlo.
Gracias.
__________________
...y mañana caminaré por las calles pasando inadvertido, como siempre. |
Herramientas | Buscar en Tema |
Desplegado | |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Tratamiento de relleno de borde en Windows Vista/7 sobre Delphi 7 | Nasca | API de Windows | 3 | 26-06-2010 19:25:13 |
como mover un formulario sin borde | kurono | Varios | 4 | 30-04-2008 07:30:41 |
Como obtener el ancho de un WebControls.Image | selman | .NET | 0 | 23-02-2007 02:21:30 |
Obtener títulos de las ventanas | •–[XII]–• | Varios | 1 | 02-08-2004 10:23:20 |
¿Como obtener el titulo de las ventanas que se ban abriendo en windows? | jorch_yr | Varios | 2 | 15-01-2004 20:17:19 |
|