Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 06-10-2006
Neiro Neiro is offline
Miembro
 
Registrado: oct 2006
Posts: 10
Poder: 0
Neiro Va por buen camino
TPageControl

De antemano gracias. Lo unico que quiero hacer es crear en tiempo de ejecucion un TTabSheet identico a uno que ya fue creado en tiempo de diseño.

Muchas Gracias
Responder Con Cita
  #2  
Antiguo 06-10-2006
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 27
jachguate Va por buen camino
Hola.

En primer lugar, bienvenid@ al clubdelphi, el punto de encuentro de los programadores de habla hispana.

Te recomiendo una buena lectura de la guia de estilo, utilizar siempre la búsqueda antes de abrir un nuevo hilo en los foros y plantear, en la medida de lo posible, preguntas puntuales sobre temas concretos.

Sobre tu pregunta, podes crear el TTabSheet y copiar todas aquellas propiedades que consideres relevantes para que el mismo sea "identico" al que fue creado en tiempo de diseño.

Básicamente algo como:

Código Delphi [-]
begin
  NuevoTab := TTabSheet.Create(Self);
  NuevoTab.Parent := ViejoTab.Parent;
  NuevoTab.Font := ViejoTab.Font;
  NuevoTab.Left := ViejoTab.Left;
  // etcetera
end;

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate

Última edición por jachguate fecha: 06-10-2006 a las 22:26:45.
Responder Con Cita
  #3  
Antiguo 06-10-2006
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 23
maeyanes Va por buen camino
O simplemente usar el método Assign que tienen todos los objetos que descienden de TPersistent...

Código Delphi [-]
NuevoTab := TTabSheet.Create(Self);
NuevoTab.Parent := PageControl1;
NuevoTab.Assign(ViejoTab)


Saludos...
Responder Con Cita
  #4  
Antiguo 06-10-2006
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
No es tan simple.

TPersistent únicamente implementa el mecanismo base para que las clases descendientes se "clonen", pero la implementación en sí debe hacerla cada descendiente.

TPersistent.Assign hace esto:

Código Delphi [-]
procedure TPersistent.Assign(Source: TPersistent);
begin
  if Source <> nil then Source.AssignTo(Self) else AssignError(nil);
end;

es decir, llama al método AssignTo (lo opuesto, semánticamente hablando) del objeto que se le pasa. Y TPersistent.AssignTo hace esto:

Código Delphi [-]
procedure TPersistent.AssignTo(Dest: TPersistent);
begin
  Dest.AssignError(Self);
end;

o sea, se limita a lanzar un mensaje de error

Código Delphi [-]
procedure TPersistent.AssignError(Source: TPersistent);
var
  SourceName: string;
begin
  if Source <> nil then
    SourceName := Source.ClassName else
    SourceName := 'nil';
  raise EConvertError.CreateResFmt(@SAssignError, [SourceName, ClassName]);
end;

En otras palabras, la clase TPersistent únicamente implementa el mecanismo de llamadas a Assign o AssignTo. Las clases descendientes deben redefinir al menos uno de los dos para que la copia pueda hacerse.

En el caso de TTabSheet, no hay tal redefinición.

// Saludos
Responder Con Cita
  #5  
Antiguo 06-10-2006
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 23
maeyanes Va por buen camino
Bueno, la verdad que no sabía que TTabSheet no redefinía el método Assign, la verdad es que lo supuse. De haber sabido, claro que no lo hubiera recomendado...

Entonces siendo así, el método propuesto por jachguate sería lo correcto para este caso...


Saludos...
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
TPageControl en tiempo de ejecución esocrates Varios 34 13-12-2010 17:07:19
Fondo en TPageControl fabianmk OOP 4 02-10-2006 13:23:46
Cambiar de pagina de un TPageControl mrmanuel OOP 13 29-04-2004 13:31:45
TPageControl. Cambiar Captions adebonis Varios 2 23-12-2003 09:25:26
TpageControl agora18 Varios 6 17-10-2003 01:04:43


La franja horaria es GMT +2. Ahora son las 04:07:07.


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
Copyright 1996-2007 Club Delphi