Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Cambiar de pagina de un TPageControl (https://www.clubdelphi.com/foros/showthread.php?t=9593)

mrmanuel 27-04-2004 17:25:24

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.

delphi.com.ar 27-04-2004 17:27:48

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)

mrmanuel 27-04-2004 17:33:31

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.

delphi.com.ar 27-04-2004 17:36:40

Prueba luego de cambiar el TabIndex hacer un Refresh del PageControl... ¿No se estará produciendo algun error que capturas?

mrmanuel 27-04-2004 17:43:50

pregunta tonta:

como cambio el TabIndex? y el Refresh?

y no capturo ningun error.

gracias

delphi.com.ar 27-04-2004 17:53:50

Mil disculpas, la idea no es el TabIndex, sinó el ActivePageIndex, y luego ejecutas el método Refresh.

Saludos!

mrmanuel 27-04-2004 17:57:23

nada, no funciona

delphi.com.ar 27-04-2004 18:00:49

Porque no posteas el código+el DFM??...
Sin toda la lógica extra

mrmanuel 28-04-2004 15:24:30

*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.

delphi.com.ar 28-04-2004 16:06:34

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?...

mrmanuel 28-04-2004 16:27:11

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

delphi.com.ar 28-04-2004 16:35:32

Puedes verlo en la versión de la dll comctl32.dll... ¿Qué sistema operativo usas?

jachguate 28-04-2004 19:55:09

Cita:

Empezado por mrmanuel
Siento lo del código pero no se como se usa la etiqueta Code, la he probado y no saca nada nuevo

Podes aprender a usar la etiqueta [ code ] siguiendo el vínculo de mi firma.

de la misma forma se usan las nuevas etiquetas [ delphi ] y [ sql ]

Código Delphi [-]
  Begin
    ShowMessage('Esto se ve mucho mejor');
  End;

Hasta luego.

;)

mrmanuel 29-04-2004 13:31:45

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 04:26:11.

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