PDA

Ver la Versión Completa : TabControl


Cañones
13-02-2010, 19:28:23
Hola a todos.
Estoy arreglando un viejo sistema que hice en Delphi 6 y necesito de la ayuda de ustedes para saber si se puede realizar lo siguiente.
El sistema de para el control de un restaurante y con un TabControl manejo las mesas.
Cada Tab es una de las mesas el cual muestra el nombre de la misma.
Ahora lo que quiero hacer es mejorar un poco la interfaz cosa que de un solo vistazo se vea un poco más de datos de cada mesa.
Para ello quiero hacer que el Caption del Tab sea de varios renglones en el cual pongo el nombre de la mesa, el mozo, y la cantidad de comensales, cada uno en un renglón distinto.
Espero que me puedan ayudar o bien aportar sus ideas.

Desde ya muchas gracias por su tiempo.

Saludos.
Cañones.

cocute
15-02-2010, 10:32:28
si por renglones te refieres a líneas podrías darle al
pagecontro1.tabheight más tamaño, 70 por ejemplo.
y luego añadir lineas al caption con salto de linea:

TabSheet1.Caption:=nombredemesa1+#10#13+mozo1+#10#13+nºcomensales;

Neftali [Germán.Estévez]
15-02-2010, 10:42:35
Tal vez en el caption puedas mostrar más de una línea (creo recordar que lo he intentado alguna vez y no ha sido posible), de todas formas, el alto es fijo, así que dudo que se vea correctamente.
La solución creo que puede ir por activar el OwnerDraw del PageControl y encargarte tú de todo el redibujado de las pestañas.
Más trabajo, pero creo que va a ser la única forma de conseguirlo.

cocute
15-02-2010, 11:20:51
Tal vez en el caption puedas mostrar más de una línea (creo recordar que lo he intentado alguna vez y no ha sido posible), de todas formas, el alto es fijo, así que dudo que se vea correctamente.
el alto no es fijo, está el pagecontrol.tabheight como he dicho antes (al menos en mi versión de Delphi).
Poniendo el salto de linea se puede hacer sin ningún problema.
http://bayimg.com/image/oakfeaach.jpg
Lo que no me gusta es que el texto se alinea desde el centro hacia abajo y no queda muy estético, no se si se puede quitar la parte de arriba.

Con el pagecontrol de los Almdev queda mejor:
En estos hay que activar la propiedad TadExtendedDraw del pagecontrol:
http://bayimg.com/image/oakfnaach.jpg
(otro punto para estos fantásticos componentes)

Neftali [Germán.Estévez]
15-02-2010, 12:13:11
el alto no es fijo, está el pagecontrol.tabheight como he dicho antes (al menos en mi versión de Delphi).
Poniendo el salto de linea se puede hacer sin ningún problema.

Tienes razón cocute, con el TabHeight, no lo recordaba; Lo que no he conseguido es el salto de línea. He probado en Delphi6 y Delphi2009 y no hay manera. Eso es lo que me sonaba que había probado alguna vez...
¿Qué versión estás utilizando?

http://img69.imageshack.us/img69/2820/imagen289.png

cocute
15-02-2010, 12:26:57
yo solo lo habia probado con el delphi 2010.

por cierto es lo mismo #10#13 que #13#10 ¿no?
al menos a mi me funciona de las dos formas.

Neftali [Germán.Estévez]
15-02-2010, 12:45:05
yo solo lo he probado con el delphi 2010.

Es lo que imaginaba.
En cuanto a los caracteres son
#10 => Line Feed
#13 => Carry Return

Teletypes required that a line of text be terminated with both "Carriage Return" and "Linefeed". The first returns the printing carriage to the beginning of the line and the second advances to the next line without moving the carriage.

cocute
15-02-2010, 12:57:00
He probado en el Delphi 2009 que tenía en otra partición (la version 12.0.3210.17555)
y si que me funciona igualmente. No se porque puede ser.

Cañones
15-02-2010, 14:43:54
Gracias a todos por sus mensajes.
He probado lo que me recomiendan y no funciona voy a tener que ver de solucionar esto de otro modo.

Gracias a todos por su tiempo.

cmm07
15-02-2010, 15:24:50
He probado en el Delphi 2009 que tenía en otra partición (la version 12.0.3210.17555)
y si que me funciona igualmente. No se porque puede ser.


alomejor puede ser que desde la 2009 incorpora tecnología UNICODE...

Neftali [Germán.Estévez]
15-02-2010, 15:50:33
He probado en el Delphi 2009 que tenía en otra partición (la version 12.0.3210.17555)
y si que me funciona igualmente. No se porque puede ser.

Se me ha encendido la lucecilla y he probado a activar los temas de XP.
:D:D ¡Voilà!
El mismo código de antes en Delphi 2009 ahora funciona correctamente.

http://img190.imageshack.us/img190/5950/imagen290.png

cocute
15-02-2010, 16:35:03
pues tienes razón, he probado a poner el estilo cásico de windows7 y ya no funciona con el componente nativo de Delphi.
Así que la solución tampoco es muy convincente ya que nunca sabes en que sistema ni en que circunstancias se va a ejecutar tu programa.

La mejor solución sin duda es usar el pagecontrol de los componentes de Almdev, que he probado con él y funciona aunque el estilo
de windows sea el clásico y además no dejan ese trozo en blanco encima del texto tan poco estético y sirven para cualquier windows.

Tengo que añadir que por curiosisdad he probado con los pagecontrol de Raize,Next,DevExpress y los dos de JVCL y con ninguno de ellos funciona en modo estilo
clásico de windows, solo con los de Almdev que he dicho antes, vamos con muchos de ellos no funciona ni con el estilo normal.