PDA

Ver la Versión Completa : Como agregar mas paginas a un Tabbes Pages


Antuan
07-08-2005, 12:41:53
Sigo siendo novato
Tengo un componente Tabbes Pages con 3 paginas que se crean por defecto al poner el componente en el formulario
¿Como puedo agregar mas paginas al Tabbes Pages.?
Muchas gracias por vuestras respuestas
Atentamente
Antuan

Lepe
07-08-2005, 14:45:53
Primero deja de usar el TabControl y usa su homólogo TPageControl, es más versatil.

Usa el boton derecho sobre el componente en tiempo de diseño, y verás para la opción para añadir un nuevo TabSheet.

Un saludo

Cabanyaler
08-08-2005, 08:46:24
... y en tiempo de ejecución:

NamePageCtrl.Pages.Create;

asignándole después los nombres y características que desees en cada una de sus propedades como a cualquier otro objeto.

:p

Antuan
08-08-2005, 09:10:23
Tengo 7 paginas y en la ultima doy la opcion con 2 botones
SALIR
CONTINUAR
Y en la opcion CONTINUAR le digo que me vaya a la pagina primera.
Pero no me va.
¿Que hago mal? 0 ¿ Me falta algo?
Codigo en Delphi


procedure TPagesDlg.TabSheet7Enter(Sender: TObject);
begin
If Application.MessageBox('Deseas Terminar?','ESPERANDO',MB_OKCANCEL+MB_ICONQUESTION)=IDOK then
Application.Terminate
else
PageMenu.SelectNextPage(TabSheet1.TabVisible = True);
PageMenu.ActivePage:= TabSheet1;
end;


TabSheet7 es la pagina 7
TabSheet1 es la pagina 1 donde quiero que se vaya y presente la pagina 1 al pulsar el boton CONTUNUAR

dec
08-08-2005, 10:07:15
Hola,

Creo que no estás usando correctamente la instrucción:


PageMenu.SelectNextPage(TabSheet1.TabVisible = True);

Pero, no te preocupes por eso ahora. En todo caso, no hacen falta las dos instrucciones que utilizas ahora, esto es:


PageMenu.SelectNextPage(TabSheet1.TabVisible = True);
PageMenu.ActivePage:= TabSheet1;

Hay al menos dos formas de "dirigirse" a una pestaña en el control "TPageControl", son estas:


PageControl1.ActivePageIndex := 0;
PageControl1.ActivePage := TabSheet1;

Nota que la segunda es la que usas tú, y que no se entiende muy bien cómo no te funciona, como no sea que algo tenga que ver la instrucción inmediatamente anterior, que, como te digo arriba, no estás empleando del todo correctamente, aunque no te aparezca ningún error al compilar.

Prueba con una de las instrucciones que te digo (y no las dos, puesto que las dos hacen lo mismo, solo que de distinta forma) y cuenta qué tal te va, puesto que creo no tendrás problemas.

Antuan
08-08-2005, 15:54:54
Supongo que algo hago mal.
Dec te he mandado la aplicacion para que si tienes un ratito le heches un vistazo si tienes tiempo, de todas formas lo repetire todo de nuevo a ver si me funciona aunque me parece que todo esta bien.
Muchas gracias.

dec
08-08-2005, 17:12:45
Hola,

Ya te respondí Antuan. Resulta que si utilizas el evento "OnShow" (creo que también ocurre en "OnEnter") de un "TTabSheet" para dirigirte a otra pestaña, por ejemplo, no funciona: porque la instrucción que lleva a la pestaña que precises se ejecutará, pero acto seguido "el flujo" del programa continua por debajo de la instrucción de marras, y, aunque no halla otras, el caso es que no se mostrará la pestaña que precises, o, por mejor decir, se mostrará, pero tan rápidamente que apenas si se ve y acto seguido se vuelve a la pestaña cuyo evento "OnShow" se utilizó...

Echa un vistazo en la ayuda de Delphi para el evento "OnEnter" y "OnShow": mi inglés no me permite una traducción muy buena, la verdad, pero, creo que los tiros van por ahí... ya te lo digo en el correo: es parecido a cuando tratas de cambiar la propiedad "Visible" de un formulario en sus eventos "OnCreate" u "OnShow"... no podrás hacerlo. La diferencia es que en este último caso Delphi se quejará con un mensaje de error, mientras que en el caso que nos ocupa no es así.

Bueno. Es que de hecho, como digo, la instrucción: "ActivePageIndex := 0" funciona, pero, al cabo no sirve de nada: el foco vuelve a la página en cuyo evento "OnShow" se escribió dicha instrucción. Te he comentado también en el correo que podrías tal vez (si alguien no presenta otra solución) hacer algún cambio en la interfaz de tu aplicación, de tal forma que evitaras el uso de la instrucción susomentada en los referidos eventos.

Antuan
08-08-2005, 17:50:51
He bajado la velocidad del portatil y efectivamente se ve que sale y luego vuelve de nuevo.
Ya vere el correo pues aun no me ha llegado y supongo que algun otro tampoco.
el ultimo que tengo tuyo es del dia 30 de Julio.
Gracias por tus comentarios y tu ayuda.

dec
08-08-2005, 18:22:49
Hola,


Ya vere el correo pues aun no me ha llegado y supongo que algun otro tampoco.
el ultimo que tengo tuyo es del dia 30 de Julio.

Bueno. Te llegará, supongo, puesto que lo he mandado y a mí no se me ha notificado ningún problema. Revisando los correos enviados compruebo que no te he enviado más que este correo desde el 30 de julio; de todos modos, básicamente, te digo lo que te he dicho aquí Antuan.