Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 06-09-2012
novato_erick novato_erick is offline
Miembro
 
Registrado: ago 2010
Ubicación: Panamá
Posts: 396
Poder: 14
novato_erick Va por buen camino
llamar formulario al hacer click en un tabSheet del componente PageControl

Un Saludo Cordial a todos en el foro:

Se me presento una idea descabellada producto de una compañera de trabajo que mas adelante se las presentare y la estoy invitando a participar en este foro e inscribirse.

Bueno voy al grano a ver si le ayudo con su ayuda chicos:

Ella me ha preguntado como llamar un formulario haciendo click en los tabsheet ya creados en modo de diseño.

Pensé hacerlo en los eventos pero note que los tabsheet no tienen dicho evento entonces la verdad no se que otro evento podría servir.


Si alguien podría ayudarnos.


Saludos

novato_erick
Responder Con Cita
  #2  
Antiguo 06-09-2012
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
Pero tienen los eventos OnMouseDown y OnMouseUp. Con ellos lo puede hacer.

Por cierto, con 130 mensajes que llevas ya podrías tener un mejor uso del espacio. Este mensaje tiene cabida en el foro de OOP así que no hay necesidad de ponerlo en Varios.

Muevo el hilo.

// Saludos
Responder Con Cita
  #3  
Antiguo 06-09-2012
novato_erick novato_erick is offline
Miembro
 
Registrado: ago 2010
Ubicación: Panamá
Posts: 396
Poder: 14
novato_erick Va por buen camino
Gracias roman

Seré mas cuidadoso en realizar las consultas en los foros apropiados.


Saludos

novato_erick
Responder Con Cita
  #4  
Antiguo 06-09-2012
novato_erick novato_erick is offline
Miembro
 
Registrado: ago 2010
Ubicación: Panamá
Posts: 396
Poder: 14
novato_erick Va por buen camino
roman:

Volviendo al tema principal, ya logre llamara al formulario dentro del evento del TabSheet OnMouseDown, con este codigo:

Código Delphi [-]

procedure TfrmEmpleados.TabSheetDatos_GeneralesMouseDown(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
 frmDatos_Generales :=TfrmDAtos_Generales.Create(self);
 frmDatos_Generales.Parent :=TabSheetDatos_Generales;
 frmDatos_Generales.Show;
end;

Sin embargo, lo que se quiere es que la pestaña del PageControl ocurra el evento:

saludos y gracias por tu atención

novato_erick
Responder Con Cita
  #5  
Antiguo 06-09-2012
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
Y ¿por qué no lo preguntaste así desde un principio?

Por otro lado, si lo que quiere es mostrar el formulario dentro del TabSheet que se va a activar al hacer click en la pestaña, pienso que sería mejor usar el evento OnChange del PageControl. Ademas, creo que debería verificar primero si no está ya credo el formulario, de lo contrario lo creará e insertará múltiples veces.

// Saludos
Responder Con Cita
  #6  
Antiguo 06-09-2012
novato_erick novato_erick is offline
Miembro
 
Registrado: ago 2010
Ubicación: Panamá
Posts: 396
Poder: 14
novato_erick Va por buen camino
roman mira este código:
Código Delphi [-]

procedure TfrmEmpleados.pgcDatos_EmpleadoMouseDown(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
 if pgcDatos_Empleado.PageCount >0 then
  begin
  frmDatos_Generales :=TfrmDAtos_Generales.Create(self);
  frmDatos_Generales.Parent :=pgcDatos_Empleado.pages[0];
  frmDatos_Generales.Show;
  end;

   if pgcDatos_Empleado.PageCount >= 1 then
     begin
  frmNivel_Educativo :=TfrmNivel_Educativo.Create(self);
  frmNivel_Educativo.Parent :=pgcDatos_Empleado.pages[1];
  frmNivel_Educativo.Show;
  end;

end;

con bucle if, creo que logre el comportamiento pero acabo de leer lo que me sugieres con el evento OnChange,
Cita:
roman dice:
Ademas, creo que debería verificar primero si no está ya credo el formulario, de lo contrario lo creará e insertará múltiples veces
como así no te entiendo.


saludos
Responder Con Cita
  #7  
Antiguo 06-09-2012
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 novato_erick Ver Mensaje
como así no te entiendo.
Es decir, ¿qué pasa si doy clic por segunda vez en la pestaña?

// Saludos
Responder Con Cita
  #8  
Antiguo 06-09-2012
novato_erick novato_erick is offline
Miembro
 
Registrado: ago 2010
Ubicación: Panamá
Posts: 396
Poder: 14
novato_erick Va por buen camino
roman tienes razón:

Acabo de probar haciendo click en las pestañas y si me vuelve abrir el formulario creandome mas formulario del mismo.

ahora mi pregunta es:

como evito eso?

//Saludos
Responder Con Cita
  #9  
Antiguo 06-09-2012
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
Tienes primero que asegurarte que la variable que usas para el formulario tiene valor nil al comienzo de la aplicación. Por ejemplo, en el evento OnCreate del formulario principal pones:

Código Delphi [-]
frmDatos_Generales := nil;

Y luego, al dar el clic pones:

Código Delphi [-]
if not Assigned(frmDatos_Generales) then
begin
  // Aquí el código que tienes
end;

// Saludos
Responder Con Cita
  #10  
Antiguo 06-09-2012
novato_erick novato_erick is offline
Miembro
 
Registrado: ago 2010
Ubicación: Panamá
Posts: 396
Poder: 14
novato_erick Va por buen camino
Gracias roman:

aquì esta el codigo completo en el Evento OnMouseDown del PageControl:
Código Delphi [-]
procedure TfrmEmpleados.pgcDatos_EmpleadoMouseDown(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
  begin
    if pgcDatos_Empleado.PageCount >0 then
       begin
          if not Assigned(frmDatos_Generales) then
            begin
              frmDatos_Generales :=TfrmDAtos_Generales.Create(self);
              frmDatos_Generales.Parent :=pgcDatos_Empleado.pages[0];
              frmDatos_Generales.Show;
            end;
       end;
   if pgcDatos_Empleado.PageCount >= 1 then
     begin
     if not Assigned(frmNivel_Educativo) then
      begin
        frmNivel_Educativo :=TfrmNivel_Educativo.Create(self);
        frmNivel_Educativo.Parent :=pgcDatos_Empleado.pages[1];
        frmNivel_Educativo.Show;
      end;
     end;
  end;

En teoria funciona con los dos (2) formularios y son 5 en total que voy a llamar en el mismo ciclo. mi pregunta es roman estoy en lo correcto en la forma que lo hice?

Gracias por tu tiempo

novato_erick
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
Ayuda con PageControl y TabSheet rruffino Varios 15 21-10-2015 22:06:18
Llamar Formulario Builder C++ 6 , no se como llamar un Formulario. Angelex C++ Builder 2 03-07-2010 02:02:42
PageControl,TabControl,TabSheet ¿ninguno actualiza en tiempo de diseño? gambitero Varios 2 05-07-2006 11:53:32
Deshabilitar un TabSheet de un PageControl Colgueit OOP 10 10-06-2006 22:42:44
Como colocar una imagen en PageControl.Tabsheet ilichhernandez OOP 5 15-11-2005 19:35:26


La franja horaria es GMT +2. Ahora son las 00:45:08.


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