FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Tratamiento de relleno de borde en Windows Vista/7 sobre Delphi 7
Tengo un problema con el coñazo relleno de borde que incorporó Windows Vista y hereda el 7. El border padding creo que se llama en inglés.
Trabajo con formularios con ajuste dinámico y parte del mismo se queda fuera de visualización cuando el relleno está a su valor por defecto: 4 Dado que por ahora el sistema mas extendido en el mundo de la empresa es XP no me parece correcto desarrollar dejando tanto espacio adicional libre en los formularios. Ya sé que a partir de Delphi 2007 este tema se soluciona por el propio IDE, lo que sucede es que por ahora no me puedo plantear el cambio de versión de Delphi. Quiero resolverlo sin salir de Delphi 7, que aparte de por esto ahora mismo me resuelve todas mis necesidades. He investigado varias opciones pero no he conseguido ninguna solución que no pase por modificar ese valor de relleno en el propio Windows. Una primera solución podría pasar por modificar el tamaño del formulario de forma previa a su visualización. Dado que la mayoría de mis formularios se crean de forma dinámica sería una opción viable. Sin embargo no he conseguido modificar el alto y ancho sin que se lance el proceso de auto-ajuste de los controles al nuevo tamaño, por lo que siguen saliéndose del área de visualización. No sé si es posible desactivar provisionalmente este mecanismo sin necesidad de recorrer todos los componentes del formulario. Incluso si sería posible modificar el recurso del formulario de forma previa a su lanzamiento. En el IDE este mecanismo se desactiva si editas directamente en modo texto el formulario, pero ni idea de cómo podría hacerse en ejecución. Otra opción que se me ocurre sería gestionar el dibujado de la ventana sobre estos sistemas. Es esta entrada se recopila alguna información al respecto pero no he conseguido hacerlo funcionar: Removing Vista Aero Border ¿Alguno se ha enfrentado a este problema y lo ha solucionado? O ha necesitado tirar de mecanismos similares o alternativos a los planteados en otro tipo de problemas que se puedan aplicar aquí. Gracias. |
#2
|
|||
|
|||
Al final he conseguido la forma de hacerlo. La clave está en redefinir el procedure Loaded del formulario.
Bendito "La cara oculta de Delphi 6" todavía me sigue aportando buenas soluciones e ideas. Tengo que volverlo a releer cuando tenga tiempo. |
#3
|
||||
|
||||
Amigo Nasca, ¿me podrías decir cuál fue la solución? Yo no me he topado con el problema todavía pero sería interesante estar preparado....
De paso queda registrado para otros que vengan buscando la solución al mismo problema. Saludetes. |
#4
|
|||
|
|||
Todavía no lo ha implementado pero para que se hagan una idea, un poco de código a nivel de formulario:
Este casi mágico procedimiento permite modificar las propiedades de los formularios guardados como recursos antes de que empiecen a tenerse en cuenta. Por ello no se activan los ajustes dinámicos de los controles cuando cambiamos las dimensiones del formulario. Espero que les sea de utilidad, me ha costado encontrar esta solución. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Compartir archivos entre Windows Vista sobre VirtualBox y Windows XP como host | mlara | Windows | 2 | 27-03-2009 09:27:28 |
¿Como saber que mi programa esta corriendo sobre Windows Vista? | xander | API de Windows | 3 | 22-09-2007 00:25:40 |
Más sobre Windows Vista | gluglu | Noticias | 26 | 03-02-2007 15:48:30 |
Duda sobre entorno Delphi para Windows Vista | geru_deusto | Varios | 9 | 12-01-2007 13:07:12 |
Pregunta sobre windows vista | lookmydoom | Windows | 1 | 13-07-2006 09:27:15 |
|