![]() |
Cambiar de pagina de un TPageControl
Hola a todos.
Tengo una aplicacion con un PageControl que tiene 4 páginas en tiempo de ejcución (Cuando creo por primera vez la aplicación) la situo en la primera página, pero no me visualiza su contenido, sino que me muestra el contenido de la ventana activa que se quedo en tiempo de diseño. Luego me vuevo por las distintas páginas y funciona perfectamente, solo sucede esto al principio de todo. ¿como podría visualizar el contenido de esta página? uso: PageControl.ActivePageIndex:= 0; para situarme en la primera página, la pestaña correspondiente se queda activa, pero el contenido de concuerda. Tambien necesitario ocultar alguna de estas paginas dependiendo de unos parametros dados, es decir, mostrar unas o ocultar otras en tiempo de ejecución. Gracias. |
Te cuento que hago eso habitualmente y nunca tuve un problema... ¿Estas seguro que los controles que ves estan puestos en ese TabSheet? (Que el Parent no sea el form)
|
si los campos que quiero mostrar estan en el TabSheet, de hecho, los tengo renombrados a cada uno de ellos con el nombre caracteristico de los datos que visualizan. y es eso justamente lo que no me muestra al crear la aplicación. despues boy cambiando de pestaña y me muestra todos perfectamente.
|
Prueba luego de cambiar el TabIndex hacer un Refresh del PageControl... ¿No se estará produciendo algun error que capturas?
|
pregunta tonta:
como cambio el TabIndex? y el Refresh? y no capturo ningun error. gracias |
Mil disculpas, la idea no es el TabIndex, sinó el ActivePageIndex, y luego ejecutas el método Refresh.
Saludos! |
nada, no funciona
|
Porque no posteas el código+el DFM??...
Sin toda la lógica extra |
*DFM
object Form1: TForm1 Left = 146 Top = 111 Width = 803 Height = 498 Caption = 'Form1' Color = clBtnFace Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText Font.Height = -11 Font.Name = 'MS Sans Serif' Font.Style = [] OldCreateOrder = False OnActivate = FormActivate PixelsPerInch = 96 TextHeight = 13 object PageControl: TPageControl Left = 5 Top = 36 Width = 779 Height = 233 ActivePage = Pag_Validar_Clave Font.Charset = ANSI_CHARSET Font.Color = clWindowText Font.Height = -16 Font.Name = 'Arial' Font.Style = [] ParentFont = False TabOrder = 0 object Pag_Direccion: TTabSheet Caption = 'Dirección' Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText Font.Height = -13 Font.Name = 'MS Sans Serif' Font.Style = [] ParentFont = False end object Pag_Permiso: TTabSheet Caption = 'Permiso' Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText Font.Height = -13 Font.Name = 'MS Sans Serif' Font.Style = [] ImageIndex = 2 ParentFont = False end object Contrato: TTabSheet Caption = 'Contrato' ImageIndex = 2 end object Pag_Validar_Clave: TTabSheet Caption = 'Clave Test' ImageIndex = 3 end end end *.pas unit borrar; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls; type TForm1 = class(TForm) PageControl: TPageControl; Pag_Direccion: TTabSheet; Pag_Permiso: TTabSheet; Contrato: TTabSheet; Pag_Validar_Clave: TTabSheet; procedure FormActivate(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.DFM} procedure TForm1.FormActivate(Sender: TObject); begin //Mostramos la paguina que nos interesa del PageControl PageControl.ActivePageIndex:= 0; //PageControl.Refresh; //PageControl.ActivePage. := 0;// .Name:= 'Pag_Direccion'; //Pages[0].Visible:= True; // .Show; //.Pag_Direccion; end; end. |
Primero quiero recomendarte que uses la etiqueta [delphi] o en su defecto [code] para publicar código en el foro.
Ahora, te comento que el ejemplo me funciona correctamente, mi única duda es ¿Qué versión de los CommonControls tienes instalada?... |
Siento lo del código pero no se como se usa la etiqueta Code, la he probado y no saca nada nuevo.
y respecto a la version del CommonControls ¿donde puedo sacar ese dato?? ha y claro que funciona, he borrado los datos que tendria que mostrar y por lo tanto no se puede comprobar. los reenvio |
Puedes verlo en la versión de la dll comctl32.dll... ¿Qué sistema operativo usas?
|
Cita:
de la misma forma se usan las nuevas etiquetas [ delphi ] y [ sql ]
Hasta luego. ;) |
hola y gracias a todos
creo que ya he localizado el problema, en el evento Show del TabSheet, paso el foco a un determinado campo, varia segun el TabSheet. ¿puede ser por eso? |
La franja horaria es GMT +2. Ahora son las 05:22:55. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi