![]() |
Problemas con XPManifest y Colores Panels
Saludos colegas, tengo este extraño problema con el XPManifest y los colores de los panels, si tengo el Panel de color blanco en tiempo de diseño y tengo el XPMani, en tiempo de ejecución el color blanco del panel desaparece y así con cualquier color, ¿A alguien le ha sucedido o es normal? ¿hay alguna solución?.
Saludos. |
Saludos,
A mí me parece que es algo normal, pues, se supone que uno incluye el XPManifest para que el look-and-feel de la aplicación esté de acuerdo con los estilos visuales de los themes de Windows. Siendo así, la solución sería decidirse, o quiere colores personalizados o quiere los de Windows. |
Pos no me queda más remedio que obviar el XPManifest :(, Muchas gracias TOPX.
Saludos. |
Un momento, seguí buscando formas de "parchear" el inconveniente y encontré que:
1. Se podría poner un Shape en el Panel, sus propiedades Align = alClient y Brush.Color igual al color deseado. 2. En tiempo de ejecución, para el Panel en cuestión, cambiar el valor de la propiedad ParentBackground = False. 3. Componentes de ExtCtrls ó no herederos de comctl32 versión 6... etc., etc. Qué cosas :rolleyes: |
Probaré con la segunda opción ya que en la primera tener que poner shapes (no dudes que no lo pensé :p) a todos los panels (son muchos) sería demasiado engorroso, luego más tarde te comento.
Saludos ;) |
Parece ser que la "culpa" la tiene el constructor de TCustomPanel, clase de la cual deriva TPanel.
como se puede ver en la línea: si los temas de Windows XP estan habilitados en la aplicación, el constructor crea el Panel con el color de su objeto Parent, el cuál casi siempre es un formulario, entonces la solución es "quitarle" esa propiedad al TPanel hmmm digamos al momento de crear el formulario que lo contiene.
|
|
Hola Fernando, a mi también me ha dado dolores de cabeza el XpManifest con los panels, yo lo he solucionado con la segunda forma que te menciona en el amigo TopX, pero no en ejecución sino en diseño, la propiedad ParentBackGround ya viene con False, en dideño lo colocas a True y despues nuevamente a False y veras que ya te funciona.
Saluditos |
Cita:
Saludos. |
La franja horaria es GMT +2. Ahora son las 05:38:52. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi