Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 05-05-2012
calufa03 calufa03 is offline
Registrado
 
Registrado: abr 2012
Posts: 6
Poder: 0
calufa03 Va por buen camino
Crear Frame en tiempo de ejecucion

hola, mi situación es la siguiente:

estoy queriendo desarrollar un programa en el cual cuando se cambie la pestaña de un ribbon se cambien la interfaz de la ventana que se muestra (lo que cambia es el frame activo). esto lo logre poniendo un frame de incio de sesión cada vez que cambio de pestaña, lo cual no es un problema xq se adecua a la utilidad del programa.

el problema es que yo querría que los frames no se creen todos al momento de crearse el formulario principal, sino que al momento de darle click a iniciar sesión dependiendo de una u otra opcion seleccionada, me cree el frame correspondiente, se entiende?

trate de usar el constructor del frame dentro del switch donde planteo la toma de decision, pero cuando esta tratando de empezar me salta un SHowmessage que dice lo siguiente: "class tframe2 not found" .
class tframe2 es el frame que estoy probando para mostrar, para mayor informacion les digo que para que el frame no se cree con el form saque la instancia que se encuentra dentro de published en el propio formulario.

si alguien conoce alguna alternativa para hacer esto les agradecere la ayuda
Responder Con Cita
  #2  
Antiguo 05-05-2012
calufa03 calufa03 is offline
Registrado
 
Registrado: abr 2012
Posts: 6
Poder: 0
calufa03 Va por buen camino
por cierto, me olvide de aclarar que estoy usando Embarcadero c++ builder 2010
Responder Con Cita
  #3  
Antiguo 05-05-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 27.576
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Sería conveniente que pongas el código, será más fácil ayudar entonces

Bienvenido a clubdelphi, ¿ya leiste nuestra guía de estilo?, gracias por tu colaboración.
Responder Con Cita
  #4  
Antiguo 06-05-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 9.824
Poder: 27
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

En realidad no comprendo la situación pero por el título, parece que tenés dificultad para crear frames dinámicamente.
Te pongo un ejemplo con un TPageControl, tres TTabSheet y tres TFrames que se crean en ejecución a fín de darte una idea de como podrías hacerlo. En el evento OnChage del TPageControl se van creando los frames correspondientes a cada TabSheet y en el evento OnExit de cada TabSheet se eliminan (deberás asignar el evento TabSheetExit a los 3 TabSheets).

Código:
...
TFrame *FR1, *FR2, *FR3;

void __fastcall TForm1::FormCreate(TObject *Sender)
{
  PageControl1->ActivePageIndex = 0;
  PageControl1Change(Sender);
}

void __fastcall TForm1::PageControl1Change(TObject *Sender)
{
  switch (PageControl1->ActivePageIndex) {
    case 0:{
            FR1 = new TFrame(this);
            FR1->Color = clHighlight;
            FR1->Align = alClient;
            TabSheet1->InsertControl(FR1);
           }; break;
    case 1:{
            FR2 = new TFrame(this);
            FR2->Color = clSilver;
            FR2->Align = alClient;
            TabSheet2->InsertControl(FR2);
           }; break;
    case 2:{
            FR3 = new TFrame(this);
            FR3->Color = clMoneyGreen;
            FR3->Align = alClient;
            TabSheet3->InsertControl(FR3);
          }; break;
  }
}

void __fastcall TForm1::TabSheetExit(TObject *Sender)
{
   switch (((TPageControl *)Sender)->ActivePageIndex) {
    case 1: delete FR1; break;
    case 2: delete FR2; break;
    case 3: delete FR3; break;
   }
}
...
Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 06-05-2012 a las 01:45:01.
Responder Con Cita
  #5  
Antiguo 06-05-2012
calufa03 calufa03 is offline
Registrado
 
Registrado: abr 2012
Posts: 6
Poder: 0
calufa03 Va por buen camino
gracias ecfisa! funciona! y es en lo que estaba teniendo problemas.
pero, en este ejemplo los frames se crean dentro de Form1 debido a que lo programas dentro de Form1, como se modificaria ese codigo si por ejemplo yo lo estoy programando en el evento de click de un boton de un frame o form distinto de Form1, pero quiero que los frames creados aparezcan en form1?
por ejemplo el codigo para crear las frames estaria en la siguiente funcion:

Código:
void __fastcall TFrame1::BitBtn1Click(TObject *Sender) 
{
................ //Codigo que tu me has dado para crear frames
}
Responder Con Cita
  #6  
Antiguo 06-05-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 9.824
Poder: 27
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola calufa03.

Si queres que el frame aparezca el form sería:
Código:
...
  Form1->InsertControl(TuFrame);
...
Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #7  
Antiguo 06-05-2012
calufa03 calufa03 is offline
Registrado
 
Registrado: abr 2012
Posts: 6
Poder: 0
calufa03 Va por buen camino
ok eficsa! graciass! ahora lo pruebo
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Crear Controles en Tiempo de Ejecucion Neeruu Varios 3 31-05-2008 21:29:23
Centrar un frame sobre un panel en tiempo de ejecución Albano OOP 4 08-03-2007 00:47:16
Crear Objetos en tiempo de ejecucion mmtaffarel OOP 6 04-12-2006 03:05:31
Crear QRDbtext en tiempo de ejecucion lbidi Impresión 8 07-10-2006 22:31:55
Crear un DSN en tiempo de ejecucion neyvan Conexión con bases de datos 7 21-05-2004 18:41:45


La franja horaria es GMT +2. Ahora son las 06:01:36.


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