Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Nueva Pagina con PageControl (https://www.clubdelphi.com/foros/showthread.php?t=26780)

Enan0 03-11-2005 13:22:58

Nueva Pagina con PageControl
 
Hola a todos, mi consulta es la siguiente. estoy Utilizadon un PageControl (con delphi 6) y necesito crear una pagina nueva en tiempo de ejecucion (una igual a la que ya esta creada (clonarla)) pero el problema es que no se como acerlo, alguien sabria decirme como puedo hacer esto?

Neftali [Germán.Estévez] 03-11-2005 14:06:56

Cita:

Empezado por Enan0
...necesito crear una pagina nueva en tiempo de ejecucion (una igual a la que ya esta creada (clonarla)) pero el problema es que no se como acerlo, alguien sabria decirme como puedo hacer esto?

Crear la página es sencillo. Lo que es un poco más complicado es "clonarla" (entiendo que entonces debes crear otros componentes).
Deberías hacer:
(1) Un recorrido de todos los componentes existentes en la pestaña original.
(2) Crear uno de la misma clase en la pestaña nueva.
(3) Asignarles las mismas propiedades que el original.

(1) Revisa en la ayuda y en los foros sobre recorridos utilizando (Components y ComponentCount)
(2) Puedes obtener la clase con GetClass (revisa ayuda y foros, hay ejemplos); con eso podrás ir creando componentes de la misma clase.
(3) Puedes utilizar el Assign (no tengo claro si funcionará del todo -por temas de parent), o sino ir asignando propiedades "a mano" (Left, Top, Color,...)

Enan0 03-11-2005 14:26:56

Gracias Neftali, Me pondre a investigar sobre lo que me pasaste.. cualquier cosa vuelvo a postear.

Enan0 04-11-2005 13:36:00

Bueno aca estoy intentado Crear una nueva Pagina (TabSheet, creo que esto es la pagina).
Se que algo estoy haciendo mal, pero la verdad no se que es.:confused:

Código Delphi [-]

  procedure TfrmStatus.CrearPagina(s: string);
  var
i:integer;
  
  begin
 i:=PControl.PageCount +1; // Incremento el Contador del PageControl
   Pages[i]:= TTabSheet.Create(nil);
   Pages[i].Name:='P'+Copy(s,2,Length(s)); //cambio el Nombre
   Pages[i].Visible :=true;
   Pages[i].Caption:=s;
   PControl.ActivePage:=Pages[i];
  end;

Neftali [Germán.Estévez] 04-11-2005 14:06:17

Creo que te está liando; Además me has cambiado el códio a medio modificar, de todas formas, lo primero que debes hacer es crear el objeto y luego asignarle las propiedades correctas.

Revisa el siguiente código:
Código Delphi [-]
 procedure TForm1.Button2Click(Sender: TObject);
 var
    Aux:TTabSheet;
 
   procedure CrearPagina(s: string);
   begin
     Aux := TTabSheet.Create(PControl.Owner);
     Aux.Name := 'Copia_de_' + s;
     Aux.PageControl := PControl;
     Aux.Caption := Aux.Name;
     PControl.ActivePageIndex := (PControl.PageCount - 1);
   end;
 
 
 begin
   CrearPagina(PControl.ActivePage.Name);
 end;

Ohcan 04-11-2005 14:08:11

Hola

Creo que te falta
Código Delphi [-]
  Pages[i].PageControl := PControl;

Saludos.


La franja horaria es GMT +2. Ahora son las 00:30:53.

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