2011-04-07 20 views
6

estoy buscando una forma de implementar una especie de subtítulo de inserción antes de una serie de pestañas, algo como esto:Leyenda de TTabControl

enter image description here

El conjunto de pestañas no se supone que es de múltiples líneas , solo será horizontal y se colocará en la parte superior. Sin embargo, debería ser desplazable correctamente cuando hay demasiadas pestañas.

Me temo que voy a estar restringido aquí con respecto al uso de controles de terceros, pero podría usar la creación de subclases en el TTabControl estándar para agregar los cambios necesarios al aspecto y comportamiento estándar. (No necesito que sea TPageControl, porque solo me interesa la disposición específica de las pestañas)

Quizás haya alguna forma de implementar esto con la combinación de controles estándar astutamente arreglados, que, a pesar de mi endevours, me he escapado.

Básicamente, cualquier idea o sugerencia es bienvenida.

Ah, y el requisito adicional es que debe combinar bien con los temas de escritorio.

Respuesta

0

Ha intentado hacer que la primera pestaña sea la leyenda que desea. Con alguna lógica adicional puede restringir la selección de esta pestaña.

No sé si puede controlar el estilo de cada pestaña individualmente para que la primera se vea, ya que no es la pestaña.

+0

Gracias, estaba pensando en eso, en realidad. Sostener un aspecto y comportamiento específicos para una determinada pestaña * podría * ser un tanto problemático. Pero un problema mucho más grande sería implementarlo junto con el desplazamiento correcto de las pestañas. –

0

Aquí está la disposición astuta de los controles que funcionarán. He hecho este tipo de cosas en el pasado. Lo mejor de todo es que maneja automáticamente el desplazamiento de pestañas.

Crafty arrangement

+0

No bajamos la respuesta, pero ¿ha probado esto para asegurarse de que "se combinará bien con los temas de escritorio"? Hubiera sido mejor anotar una copia de la imagen de tiempo de ejecución del formulario, en lugar del tiempo de diseño que no demuestra la apariencia real o cómo se "combina" con los temas de tiempo de ejecución. –

+0

@ Ken-White, Mea culpa. Esto fue golpeado en Delphi 5 (sin temas). Debería haber hecho una captura de pantalla en tiempo de ejecución. Dicho esto, esto utiliza material estándar de VCL que, como ya he dicho, ha utilizado este tipo de arreglo en el pasado sin problemas. Supongo que me estaba enfocando en el problema del desplazamiento de pestañas para esta respuesta. – JohnS

+0

Gracias por la sugerencia. Consideré [un enfoque similar, solo con un panel] (http://imgur.com/0npMzVT) en lugar de un control de página (no necesitaba varias páginas, solo pestañas). El problema era el mismo que con su arreglo: el borde superior del panel siempre estaba visible, lo que era inaceptable porque realmente quería el aspecto perfecto de un TTabControl con un título antes de las pestañas. –

1

anticipado, hace algún tiempo, pero recientemente he necesitado este estilo y se encontró que se puede hacer con el software TMS TAdvOfficePager. Tiene una propiedad FixedTabs, que establecí en 1 en este caso. También tiene un evento OnChanging en el que puede evitar el acceso a una pestaña, en este caso utilicé AllowChange: = (ToPage> 0); Por último, configuré la primera pestaña como deshabilitada.

A continuación, sólo el estilo de la primera pestaña diferente que el resto y que puede tener algo como esto:

enter image description here

+0

Esto parece estar marcando todos los cuadros. –