Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Comportamiento de Formularios al ser un componente PageContr o Panel el Padre (https://www.clubdelphi.com/foros/showthread.php?t=80322)

novato_erick 18-09-2012 18:17:42

Comportamiento de Formularios al ser un componente PageContr o Panel el Padre
 
Hola a Todos Como están?

Tengo formularios creados ejemplo Agregar Empleado el cual el mismo me sirve para modificar empleado sin embargo este primero siempre el parent es un TPageControl, otro de Consulta pero este lo llamo de forma Modal y que al final al darle Close mi formulario que fue llamado atras del modal el frmEmpleado desaparece y me deja el TPageControl vacio. Pero este comportamiento no es igual si utilizo el Execute de los TActionManager ya que si me deja el frmEmpleado.

Mi duda es si el porque si tengo el mismo codigo llamado desde un TActionManager por ejemplo:

Código Delphi [-]
procedure TfrmPrincipal.NvoEmpleadoExecute(Sender: TObject);
begin
  frmEmpleados := nil;
   begin
    frmEmpleados := TfrmEmpleados.Create(Self);
    PageControlVisible;
    frmEmpleados.Caption := '  Ingresar Empleado';
    frmPrincipal.pestana(frmEmpleados, '');
  end;
end;

y este codigo en un boton de llamar al mismo formulario pero con el caption de 'modificar':

Código Delphi [-]
  if frmEmpleados = nil then
  begin
    frmEmpleados := TfrmEmpleados.Create(Self);
    PageControlVisible;
    frmEmpleados.Caption := '  Modificar Empleado';
    frmPrincipal.pestana(frmEmpleados, '');
  end;

no se porque pueda suceder.


saludos

novato_erick

novato_erick 18-09-2012 20:28:01

Solucion
 
Bueno respondiéndome a mi propio enredo aquí tengo la solución:

Este era mi código anterior:

Código Delphi [-]
procedure TfrmConsultarEmpleado.btnmodificarClick(Sender: TObject);
begin
  if frmEmpleados = nil then
  begin
    frmEmpleados := TfrmEmpleados.Create(Self);
    frmEmpleados.Caption := '  Modificar Empleado';
    PageControlVisible;
    frmEmpleados.lblTitulo.Caption := 'Modificar Empleado';
    frmPrincipal.pestana(frmEmpleados, '');
  end;
end;

Este es la modificación:
Código Delphi [-]
procedure TfrmConsultarEmpleado.btnmodificarClick(Sender: TObject);
begin
  if frmEmpleados = nil then
  begin
    frmEmpleados := TfrmEmpleados.Create(PageControlCloseButton); (* aqui remplazo mi parametro Sef por el Nombre del componente... 
                                                                    tratare de documentarme el porque y mandare la respuesta mas adelante *)
    frmEmpleados.Caption := '  Modificar Empleado';
    PageControlVisible;
    frmEmpleados.lblTitulo.Caption := 'Modificar Empleado';
    frmPrincipal.pestana(frmEmpleados, '');
  end;
end;


Saludos


novato_erick


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

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