![]() |
Forms Sombreados
Hola Amigos !
Encontré una curiosidad para sombrear los forms en http://www.swissdelphicenter.ch/de/showcode.php?id=1296 Lo que he podido comprobar que si muestro el form de manera 'No Modal' (Form.Show) todo funciona correctamente, pero si lo muestro 'Modal' (Form.ShowModal) entonces la parte del nuevo form que se encuentre sobre otro form de la misma aplicación no se sombrea, y la que aparece fuera de la aplicación principal sí que se sombrea correctamente. En este caso particular también ocurre que si paso a otra aplicación de windows cualquiera (llámese Word, etc. ...., el mismo Delphi en modo Debug, ...), y vuelvo a mi aplicación, el sombreado aparece correctamente en cualquier caso :eek: . Alguna ayudita del por qué y como solventarlo ? Gracias y saludos a todos ! |
Buscando información adicional al respecto, encontré lo siguiente :
Cita:
|
Sigo investigando ...
Por otro lado he visto que al parecer hace falta la siguiente línea adicional de código : Código:
SystemParametersInfo(SPI_SETDROPSHADOW,0,Pointer(true),0);Esto es lo que aparece en la ayuda de Delphi bajo 'SystemParametersInfo' Cita:
|
A pesar de todo esto ...
sigue sin funcionar con Form.Showmodal :( |
:p !!
Finalmente me contesto a mi mismo en todo este post !! Ya lo conseguí ... Encontré en la propia ayuda de Delphi lo siguiente : Cita:
Saludos a todos ! |
gluglu, te agradezco que hayas continuado y concluido este hilo tú sólo. Mucha gente, al no recibir respuesta, opta por no publicar la suya propia una vez que la encuentran. Da gusto ver que esta vez no fue así.
Me resta una pregunta: ¿qué versión de Delphi usas? Porque no veo la propiedad PopupMode por ningún lado. :( |
Pues según, parece que esta propiedad la agregaron desde Delphi 8.
http://blogs.borland.com/abauer/arch...02/10/295.aspx Saludos... |
Gracias a David 'dec' pude crear mi propio avatar, incluyendo la versión del Delphi que utilizo, así como la BD que uso.
Estaba programando en D2005 pero ya me estoy pasando por completo a D2006. Cierto es que como llevo poquito tiempo en el nuevo mundo del Delphi, empezé directamente con la versión más actual, por lo que no sabía que dicha propiedad no se encontraba disponible en versión anteriores a D8. Lo que sí creo es que la indicación que viene en el primer link que expuse, con respecto a sombrear los forms, sirve para todas las versiones de Delphi, pero yo me encontraba el problema con aquellas ventanas que eran 'modales'. Seguro que junto con la explicación que viene en el link que ha dado maeyanes, debe existir una manera de solucionar el orden Z de las ventanas modales en D7 o anteriores, y de esta manera poder hacer uso de los forms sombreados incluso en versiones modales. Debo añadir a todo este hilo que no especifiqué que además hay que activar la propiedad FormStyle = fsStayOnTop del form que se quiere sombrear. En cualquier caso es un placer para mí compartir con todos vosotros mis averiguaciones, así como aprovechar para daros las gracias a todos por la ayuda que siempre me prestais en mis consultas. Un saludo a todos. ;) |
Sombreado de un form
Saludos Gluglu,
Estoy intentando aplicar tus conocimientos sobre sombreado a un form de tipo showmodal, pero no consigo averiguar como y donde poner cada parte del código: ¿en el form principal? ¿en el form que se visualiza como modal?... He hecho varias pruebas, pero todas ellas infructuosas- ¿me puedes hechar una mano con esto? Muchas gracias! |
Tengo el mismo problema con el que iniciaste el hilo, no logro que un form modal haga sombra en los formularios de la aplicación, si hace sombra en cualquier parte fuera de la misma, pero a los forms de la aplicación no les hace sombra.
Seguí todos tus consejos sin embargo no logro hacerlo funcionar. Tal vez podrías publicar el código completo, para ver si me estoy perdiendo algo. Gracias :confused::confused::confused::confused::confused: |
Al crear un Form en tiempo de ejecución lo que hago es :
El Form1 tiene la propiedad FormStyle := fsStayOnTop. Y en el Form1 :
Al menos así me funciona a mi sin ningún tipo de problema. ;) |
Funcionó, gracias por responder.
:) |
| La franja horaria es GMT +2. Ahora son las 19:37:37. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi