Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 22-09-2004
cacuna cacuna is offline
Miembro
 
Registrado: sep 2003
Posts: 54
Poder: 21
cacuna Va por buen camino
Post Crear TabSheet en Runtime previamente diseñado

Que tal foro.

Pues eso precisamente.
Necesito agregar TabSheets a un PageControl.
El PageControl ya existe al momento de entrar a mi aplicacion.
Los TabSheets son diseñados previamente, pero son destruidos al momento de entrar a la aplicacion con ciclo usando la siguiente linea:

Código:
if PageControl1.TabCount > 0 then
      PageControl1.Pages[PageControl1.ActivePageIndex].Destroy ;
despues en diferentes partes de mi aplicacion deseo crear los tabsheets ya diseñados y mostrarlos en el Pagecontrol ya existente.

Código:
TabSheet1 := TTabSheet.Create(Self);
TabSheet1.PageControl := PageControl1;
Pero solo crea el tabSheet como si fuera totalmente nuevo, es decir, sin nada de los componentes colocados en tiempo de diseño.

Utilizo D7, IBX 7.07 y Firebird 1.5.
Espero haberme expllicado.

Saludos y gracias de antemano.

Última edición por cacuna fecha: 22-09-2004 a las 05:45:23.
Responder Con Cita
  #2  
Antiguo 22-09-2004
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
Cita:
Empezado por cacuna
Espero haberme expllicado.
Pues no mucho. Lo que intentas hacer no tiene sentido (tal como lo intentas). En el momento de destruir los TabSheet al iniciar la aplicación estos, eerr, ¡pues dejan de existir! Pasan a mejor vida y nadie se acuerda de ellos. Cuando posteriormente creas uno nuevo con:

TTabSheet.Create(..)

lo que haces es crear uno en blanco. No hay forma de que sepa cuáles tenás en modo de diseño.

Para poder ayudarte necesitaríamos saber con mayor precisión qué es lo que intentas hacer. Por el momento te puedo decir que si lo que deseas es que los TabSheet no se vean al iniciar la aplicación entonces basta que les pongas su propiedad TabVisible en false y cuando desees mostrar uno vuelvas a poner en true dicha propiedad.

// Saludos
Responder Con Cita
  #3  
Antiguo 22-09-2004
cacuna cacuna is offline
Miembro
 
Registrado: sep 2003
Posts: 54
Poder: 21
cacuna Va por buen camino
Post Eso es exactamente

Gracias Roman por tu respuesta.

Pero eso es precisamente lo que no quiero hacer. Por que?
Por que de entrada son demasiados tabsheet (+- como 40), cada uno con componentes diversos, y, segun yo al solo ocultarnos y no mostrarlos mi aplicacion seria algo "pesada".

Ahora que, si los creo y los destruyo conforme los vaya necesitando , pues creo que seria mejor no?

Pero me dejaste intrigado con tu respuesta. No hay forma de crear en runtime los tabsheet hechos en design time?

Que solucion se te ocurre que no sea la de poner visible a true o false segun lo requiera.?

Saludos y gracias nuevamente.

cacuna.
Responder Con Cita
  #4  
Antiguo 22-09-2004
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
Cita:
Empezado por cacuna
Que solucion se te ocurre que no sea la de poner visible a true o false segun lo requiera.?
Quizá lo más sencillo sea recurrir a frames. Por cada TabSheet diseñas un TFrame poniendo en él los controles que pondrías en el TabSheet. Cuando requieras crear un nuevo TabSheet lo creas tal como lo hacías (en blanco) y creas a la vez el TFrame que le corresponda y lo insertas en el nuevo TabSheet.

// Saludos
Responder Con Cita
  #5  
Antiguo 22-09-2004
cacuna cacuna is offline
Miembro
 
Registrado: sep 2003
Posts: 54
Poder: 21
cacuna Va por buen camino
Lo voy a intentar.....gracias

Roman,
A pesar de no haber usado nunca los Frames, antes de publicar este hilo lei una respuesta similar -creo tuya- en un hilo anterior sugiriendo esto mismo.

Ya habia pensado en hacerlo, pero dude en un principio.
Ahora que mencionas que de cierta forma no hay otra manera de hacerlo, lo intento con Frames sin duda alguna.

Saludos y gracias por tu ayuda.

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


La franja horaria es GMT +2. Ahora son las 19:59:02.


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