Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Por qué desaparece el caption de las TTabSheet laterales en un TPageControl (https://www.clubdelphi.com/foros/showthread.php?t=76366)

Casimiro Notevi 26-10-2011 13:43:09

Por qué desaparece el caption de las TTabSheet laterales en un TPageControl
 
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

Cita:

Empezado por Casimiro Notevi (Mensaje 416752)
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

1 Archivos Adjunto(s)
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

Cita:

Empezado por Neftali (Mensaje 416777)
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, 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/threa...ssageID=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

Cita:

Empezado por Casimiro Notevi (Mensaje 416787)
...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

Cita:

Empezado por Casimiro Notevi (Mensaje 416815)
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.


La franja horaria es GMT +2. Ahora son las 07:42:28.

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