OwnerDraw en TPageControl
Hola a tod@s, de nuevo con los problemas ;)
Estoy diseñando una aplicación que tiene un TPageControl2 dentro de una pestaña de otro TPageControl1. Algunas de las pestañas del TPageControl2 deben mostrarse u ocultarse dependiendo del estado de unos botones TCheckBox que actualizo desde una Base de datos. Las pestañas y los botones los nombro, (para mi comodidad), con el nombre de la clase y otro en mayúsculas separados por el guión bajo (_), por ejemplo si hay un botón llamado CheckBox_PEPE hay una pestaña llamada TabSheet_PEPE. Para dar "realce" a las pestañas, utilizo el evento OnDrawTab (las pone con el texto en rojo y negrita). Bien, depués de todo este "rollo", :D el problema es que muestra las pestañas que quiere (o no se hacerlo, que será lo más probable) :mad: Si desactivo la propiedad OwnerDraw, todo funciona correctamente. :confused: El código de los botones para ocultar las pestañas es el siguiente: Código:
procedure TForm_Configuracion.CheckBox_ACTIVAR_PESTANAS_OnClick(Sender: TObject); Código:
procedure TForm_Configuracion.PageControl2_OnDrawTab( salvica |
Haber si ahora podeis ayudarme :rolleyes:
En el ejemplo que pone Román aquí me ocurre lo mismo:(, entonces he optado por meter algunos controles en una de las pestañas que debe estar oculta, (hasta ahora estaban vacías y pensaba que lo que estaba viendo era correcto). Craso error :(:(:(, la variable TabIndex del procedimiento OnDrawTab del TPageControl recibe el número de órden de las pestañas visibles por lo que la línea no se corresponde con la realidad Ejemplo: Código:
PageIndex TabIndex Caption no pintaría pas pestañas uno y dos (TabIndex = -1), o sea TabVisible = false Al pintar la pestaña tres (TabIndex = 1) PageControl1.Pages[TabIndex].Caption = Uno ¿Como puedo resolver el problema? (Saber el PageIndex de la pestaña a dibujar) Gracias Salvica |
Hola Salvica
Mira a ver si este codigo te puede ayudar
|
La franja horaria es GMT +2. Ahora son las 18:13:06. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi