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.