Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Pagecontrol sin pestañas (estilo NoteBook) (https://www.clubdelphi.com/foros/showthread.php?t=64748)

Chandra_ 16-04-2009 21:39:17

Pagecontrol sin pestañas (estilo NoteBook)
 
Hola. Estaba diseñando la interfaz de un programejo y había pensado en la típica estructura de iconos o botones a la izquierda y que al pulsar sobre ellos, irían apareciendo a la derecha distintas "pantallas" del programa.

En principio pensé en usar un TNoteBook, pero, como se supone que es un componente obsoleto, había pensado usar un PageControl. Como no quiero que se vean las pestañas (porque dentro de cada página o TabSheet irá anidado un segundo PageControl -este ya sí, con sus pestañas a la vista- y quiero que quede minimalista, sencilo), había pensado en ocultar todas las pestañas en tiempo de ejecución con "TabSheetX.TabVisible := False;" y luego ir moviéndome por las pestañas a golpe de "PageControl1.ActivePage := TabSheetX;".

En tiempo de diseño, al no tener ocultas las pestañas, me resulta más cómodo desplazarme por él que si fuera un TNoteBook.

El inconveniente... la apariencia 3D del PageControl, que "se hace notar" :p (no es un NoteBook, que no tiene bordes ni sombras).

La pregunta es si todo esto es correcto o me puedo encontrar algún tipo de problema de visualización (no sé... en cualquiera de los sabores de Windows, por ejemplo).

Gracias :D

EDITO: Estoy pensando que tal vez obtenga el mismo resultado si uso varios frames: los pongo uno sobre el otro y los creo y libero (como suelo hacer con los forms de mis aplicaciones) a medida que me vayan haciendo falta. Lo que no sé es si será un poco lento en tiempo de ejecución crear frames con contenidos complejos (por ejemplo, con un Pagecontrol dentro cargado de componentes) cada dos por tres.

Caro 16-04-2009 22:34:54

Hola Chandra_, puedes cambiarle de estilo al PageControl en su propiedad Style lo pones a tsFlatButtons y ocultas las pestañas en ejecución con TabVisible como lo estabas haciendo.

Saluditos

delphi.com.ar 16-04-2009 22:48:49

Cita:

Empezado por Chandra_ (Mensaje 345223)
En principio pensé en usar un TNoteBook, pero, como se supone que es un componente obsoleto, había pensado usar un PageControl.

Yo uso el TNoteBook hoy en día... si no me equivoco, es un componente escrito en Delphi no es un "wrapeo" de herramientas obsoletas de windows, por lo que podría utilizarse con tranquilidad.

Saludos!

ContraVeneno 16-04-2009 23:30:34

Las JEDI VCL tienen un componente TjvOutlookBar que te da la funcionalidad que mencionas, sin necesidad de hacer tanto por código. Además de otras cosas interesantes, como el TjvPageListView, que te permite ver varias páginas como si fuera un "TreeList", combinado con un TjvPageList y sus respectivos TjvStandarPage.

En pocas palabras, si en lugar de usar un PageControl, utilizas alguno de estos componentes de las JEDI, te podrías ahorrar mucho código.

Chandra_ 17-04-2009 09:56:32

Hola de nuevo. Ante todo, muchas gracias por vuestras respuestas y vuestro tiempo.

Cita:

Empezado por Caro (Mensaje 345237)
Hola Chandra_, puedes cambiarle de estilo al PageControl en su propiedad Style lo pones a tsFlatButtons y ocultas las pestañas en ejecución con TabVisible como lo estabas haciendo.

No entiendo para qué cambias el Style a tsFlatButtons, en vez de dejarlo como está, en tsTabs. Quiero decir, que no logro ver la diferencia a efectos prácticos, si al final voy a ser sólo yo el que lo vea, en tiempo de diseño. :confused:

Cita:

Empezado por delphi.com.ar (Mensaje 345239)
Yo uso el TNoteBook hoy en día... si no me equivoco, es un componente escrito en Delphi no es un "wrapeo" de herramientas obsoletas de windows, por lo que podría utilizarse con tranquilidad.

Un dato muy interesante para usarlo con libertad :)

Cita:

Empezado por ContraVeneno (Mensaje 345244)
Las JEDI VCL tienen un componente TjvOutlookBar que te da la funcionalidad que mencionas, sin necesidad de hacer tanto por código. Además de otras cosas interesantes, como el TjvPageListView, que te permite ver varias páginas como si fuera un "TreeList", combinado con un TjvPageList y sus respectivos TjvStandarPage.

En pocas palabras, si en lugar de usar un PageControl, utilizas alguno de estos componentes de las JEDI, te podrías ahorrar mucho código.

Es muy interesante, ContraVeneno... el problema es que suelo ser reticente a usar componentes de terceros, a no ser que sean estrictamente necesarios, porquer al final siempre me pasa lo mismo: hay que andar buscando mil y un componentes que en su momento usaste en esta o aquella aplicación antigua, ver si los han actualizado para versiones más recientes del IDE... una tortura.

De todas formas, si no recuerdo mal, las JEDI VCL se habían quedado con el proyecto de las RxLib, cuyos componentes yo usaba profusamente y luego descontinuaron... para después volver a programarlos. En resumen, que eran unos magníficos componentes y me gustaba mucho usarlos (por eso se queja amargamente mi IDE cada vez que abro viejos proyectos para fijarme en algo), así que... tal vez sea el momento de volverles a echar un vistazo :rolleyes:.

El único "problemilla" de Jedi VCL es que instala una burrada de componentes que jamás vas a usar. Aunque supongo que eso da igual.

De todos modos, si no recuerdo mal, el TjvOutlookBar tenía (y digo "tenía", no sé si ha evoluicionado a mejor) un aspecto muy tosco, estilo Windows95.

Neftali [Germán.Estévez] 17-04-2009 11:49:53

Cita:

Empezado por Chandra_ (Mensaje 345223)
...había pensado en ocultar todas las pestañas en tiempo de ejecución con "TabSheetX.TabVisible := False;" y luego ir moviéndome por las pestañas a golpe de "PageControl1.ActivePage := TabSheetX;".
En tiempo de diseño, al no tener ocultas las pestañas, me resulta más cómodo desplazarme por él que si fuera un TNoteBook.

Yo uso esa técnica a menudo y no he tenido ningun problema. Como tú dices es más cómodo que el NoteBook, porque en diseñoel cambio entre pestañas es mucho más ágil.

Cita:

Empezado por Chandra_ (Mensaje 345223)
EDITO: Estoy pensando que tal vez obtenga el mismo resultado si uso varios frames: los pongo uno sobre el otro y los creo y libero (como suelo hacer con los forms de mis aplicaciones) a medida que me vayan haciendo falta. Lo que no sé es si será un poco lento en tiempo de ejecución crear frames con contenidos complejos (por ejemplo, con un Pagecontrol dentro cargado de componentes) cada dos por tres.

En ese caso pierdes la flexibilidad de cambiar en diseño. De todas formas, todo dependerá del número de componentes que utilices.

Cita:

Empezado por delphi.com.ar (Mensaje 345239)
Yo uso el TNoteBook hoy en día... si no me equivoco, es un componente escrito en Delphi no es un "wrapeo" de herramientas obsoletas de windows, por lo que podría utilizarse con tranquilidad.

Creo haber leído en algun sitio que podía tener problemas si se usaba herencia de formularios con este componente, pero yo también lo he usado en algunos desarrollos y no he tenido ningun problema.

delphi.com.ar 17-04-2009 15:02:55

Cita:

Empezado por Neftali (Mensaje 345289)
Creo haber leído en algun sitio que podía tener problemas si se usaba herencia de formularios con este componente, pero yo también lo he usado en algunos desarrollos y no he tenido ningun problema.

Jeje... puede ser algo que yo mismo escribí y olvidé:
Link1
Link2
:p

Neftali [Germán.Estévez] 17-04-2009 16:20:23

Pues vaya 2... ;-)

Chandra_ 17-04-2009 17:01:01

Cita:

Empezado por Neftali (Mensaje 345289)
Yo uso esa técnica a menudo y no he tenido ningun problema. Como tú dices es más cómodo que el NoteBook, porque en diseño el cambio entre pestañas es mucho más ágil.

Pues no se hable más: me he puesto a funcionar con el PageControl. Ya tenía medio montada la interfaz de esa forma. Además, si Neftali dice que también usa mi técnica, ya me siento hasta importante y todo :)

Lo que sigo sin entender es la finalidad de lo que decía Caro acerca de los tsFlatButtons...

ContraVeneno: esta mañana he instalado las Jedi VCL y me han gustado mucho. Las voy a dejar y creo que usaré algunos componentes en mis proyectos. Espero que, al ser un proyecto mantenido por la comunidad, no me dejen en la estacada :D , y saquen con cierta frecuencia versiones para nuevas versiones del IDE. Parece un proyecto serio y parece "vivo" (me ha animado bastante que tengan versión también para Delphi 2009; yo tengo el 2007 y quiero comprarme la versión de Update pronto). Me he vuelto a encontrar con viejos componentes que usaba en programas hace mil años :p

Caro 17-04-2009 17:28:25

Cita:

Empezado por Chandra_ (Mensaje 345339)
Lo que sigo sin entender es la finalidad de lo que decía Caro acerca de los tsFlatButtons...

Hola de nuevo Chandra, nose pero creo que no he entendido bien cual era tu pregunta, yo si utilizo bastante el PageControl y al igual que tu en diseño lo dejo con las pestañas y en ejecución las escondo con esto:

Código Delphi [-]
 for Ind:=0 To PageControl1.ControlCount-1 Do
  if PageControl1.Controls[Ind] is TTabSheet Then
   TTabSheet(PageControl1.Controls[Ind]).TabVisible := False;

Ahora, lo que yo pensaba que era tu pregunta es que el PageControl no se muestre en 3D sino en 2D y eso lo entendí de la parte que esta resaltado en negrita por eso la respuesta que te he dado. No he utilizado el TNoteBook,

Cita:

Empezado por Chandra_ (Mensaje 345223)
En tiempo de diseño, al no tener ocultas las pestañas, me resulta más cómodo desplazarme por él que si fuera un TNoteBook.

El inconveniente... la apariencia 3D del PageControl, que "se hace notar" :p (no es un NoteBook, que no tiene bordes ni sombras).

Saluditos

ContraVeneno 17-04-2009 17:44:08

Cita:

Empezado por Chandra_ (Mensaje 345339)
esta mañana he instalado las Jedi VCL y me han gustado mucho...

Estoy seguro de que no te vas a arrepentir, tienen muchas cosas muy interesantes. :cool: Cierto que también se instalan infinidad de cosas que tal vez nunca uses, pero la verdad es que no estorban para nada.

MAXIUM 17-04-2009 19:04:25

¿Podrian colcar una captura de lo que se pretende hacer por favor?

Chandra_ 17-04-2009 21:04:23

Cita:

Empezado por Caro (Mensaje 345343)
Ahora, lo que yo pensaba que era tu pregunta es que el PageControl no se muestre en 3D sino en 2D y eso lo entendí de la parte que esta resaltado en negrita por eso la respuesta que te he dado. No he utilizado el TNoteBook

Aaaaaaah! :D Ahora te comprendo. Claro, tiene todo el sentido :)


La franja horaria es GMT +2. Ahora son las 05:35:24.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi