Ver la Versión Completa : Por qué desaparece el caption de las TTabSheet laterales en un TPageControl
Casimiro Notevi
26-10-2011, 13:43:09
WinXP+D2007
Explico, es simple: un TPageControl con dos TTabSheet, normales y corrientes.
Quiero poner las pestañas en el lado izquierdo, selecciono TabPosition y elijo tpLeft.
Las pestañas están en el lado izquierdo, qué bien, pero ¡¡¡desparece el caption de las mismas!!!.
Probado en un WinXP+D5 y WinXP+D7 ¡¡¡funciona bien!!!
¿Qué ha cambiado en D2007?, ¿cómo solucionarlo?.
¿Algún otro componente estándar que permita poner un menú lateral?
Gracias.
newtron
26-10-2011, 14:21:01
Las pestañas están en el lado izquierdo, qué bien, pero ¡¡¡desparece el caption de las mismas!!!.
Curioso pero cierto.
Es posible que sea porque el tiempo de izquierdas se está acabando, ¿has probado a la derecha? :D
Casimiro Notevi
26-10-2011, 14:27:40
La derecha tampoco, lo único que funciona es el centro :D
Enan0
26-10-2011, 14:56:12
Con D2007 no se que pasa, pero en 2009 ya esta solucionado
Casimiro Notevi
26-10-2011, 15:47:51
Pues vaya faena :(
¿Puedes pasarme, si es posible, el fichero ComCtrls.pas de tu D2009?, voy a buscar las diferencias con el de D2007, a ver si veo el problema.
Neftali [Germán.Estévez]
26-10-2011, 16:23:34
A lo mejor acabas antes si dibujas tú el texto, siempre que no sean muchas.
Te paso un ejemplillo con el que estuve probando hace un tiempo para "pintar" de forma manual los tabsheets.
Es algo de código que usé para probar algunas cosas (coloreado), teniendo en cuenta con imagen y sin imagen. A lo mejor te sirve.
Enan0
26-10-2011, 17:02:59
Te comento en el Delphi2009 no viene el .pas solo el archivo DCU.
Pero tambien estoy usando D7 y al parecer no han habido muchos cambios.
Por otro lado. RAD 2009 si trae el hpp
tal vez estos archivos puedan ayudarte.
Casimiro Notevi
26-10-2011, 17:15:15
Debe venir, en source\Win32\vcl
Enan0
26-10-2011, 17:29:05
Si pero no lo tengo, es mas realize una busqueda. en todo el disco.. por las dudas y nada.
Tampoco dentro del DVD, solo el hpp
Casimiro Notevi
26-10-2011, 18:00:58
Pues sí es raro eso, pero bueno, no te preocupes, ya me las apaño, gracias de todas formas :)
Casimiro Notevi
26-10-2011, 18:04:58
Te paso un ejemplillo con el que estuve probando hace un tiempo para "pintar" de forma manual los tabsheets.
Curiosamente, si desmarco OwnerDraw, en tu ejemplo, sí se ve, en caso contrario, no. ¿Debería de ser al contrario?, o es que ya estoy hecho un lio.
Al González
26-10-2011, 19:46:19
Hola Antonio.
Busqué en "TabPosition" en QualityCentral (http://qc.embarcadero.com/wc/qcmain.aspx), encontrando algunas explicaciones:
http://qc.embarcadero.com/wc/qcmain.aspx?d=55241
http://qc.embarcadero.com/wc/qcmain.aspx?d=13009
https://forums.embarcadero.com/thread.jspa?messageID=158875
Según se lee, se trata de un problema de temas, más de Windows que de Delphi.
También encontré que Delphi 2007 incluye una opción de proyecto llamada Enable runtime themes. Haciendo pruebas con este Delphi sobre Windows XP, cuando desmarco esa opción ya no ocurre el problema que describes en tiempo de ejecución, aunque en tiempo de diseño persiste (probablemente porque el propio IDE fue compilado con esa opción activada).
Si no te importa que los títulos de las pestañas sean invisibles en tiempo de diseño, hacer lo mismo podría bastarte. De lo contrario, en tu lugar optaría por una solución como la de Neftalí.
Un abrazo temático.
Al González. :)
Casimiro Notevi
26-10-2011, 20:27:21
Entonces entiendo que en modo diseño no se ven los títulos (caption), pero si lo ejecuto entonces sí se verán.
Hago la prueba y... no se ven :(
Sí, lo de "enable runtime themes" lo tengo marcado para que el programa sea un poco más vistoso.
Seguramente si quito eso ya se verán, pero no quiero hacerlo :)
Optaré entonces por el ejemplo de Neftalí que lo he probado y funciona bien.
¡¡¡Gracias!!! :)
Neftali [Germán.Estévez]
26-10-2011, 21:14:40
...si desmarco OwnerDraw, en tu ejemplo, sí se ve, en caso contrario, no. ¿Debería de ser al contrario?,
Pues al vez está la condición al revés.
Se supone que con OwnerDraw a TRUE deberías verlas, porque se dibujan "Manualmente"; Tal vez he dejado la condición al revés sin darme cuenta.
Lo que veo es que tendrás que modificarlo (el código) porque si pones las pestañas a la izquierda se dibuja mal. ;-(
Sigue pintando el texto en horizontal.
Casimiro Notevi
26-10-2011, 21:36:38
Pues por eso lo decía, lo pinta en horizontal, sin embargo si le desmarco el ownerdraw sí lo pinta bien :eek:, ahora sí que no entiendo nada :confused:
Casimiro Notevi
26-10-2011, 21:39:28
Ya veo, es porque no tiene activo en el proyecto "enable runtime themes"
egostar
26-10-2011, 22:20:12
Ya veo, es porque no tiene activo en el proyecto "enable runtime themes"
Amigo casi, esto que voy a decir no te va a resolver el problema, pero a los que si saben les puede dar una idea de como resolverlo, modifica la propiedad tabWidth = 1 y verás un efecto curioso.
Saludos
Casimiro Notevi
26-10-2011, 22:32:51
Sí, ya veo, aparentemente pinta las pestaña encima del texto (caption), por eso no se ve.
vBulletin v3.6.8, Derechos ©2000-2024, Jelsoft Enterprises Ltd.