Sobrecarga aninhada com procedure (Form dentro de Layout)

Delphi

25/04/2017

Seguinte galera, estou querendo fazer uma classe no qual eu passe o Form, LayoutContainer ou Form, LayoutContainer e MultiView por parâmetro e dentro dessa classe tenha o método abrir form com os dois tipos de parâmetros.

type
  TFormComp = class
public
  class procedure AbrirForm(AFormClass: TComponentClass; LayoutContainer: TLayout); overload;
  class procedure AbrirForm(AFormClass: TComponentClass; LayoutContainer: TLayout; mvMainMenu: TMultiView); overload;
end;


Procedure 1

class procedure TFormComp.AbrirForm(AFormClass: TComponentClass; LayoutContainer: TLayout);
var
  layoutClient, botaoMainMenu: TComponent;
  fActiveForm                : TForm;
begin

  Application.CreateForm(AFormClass, FActiveForm);
  //encontra o LayoutBase no form a ser exibido para adicionar ao frmPrincipal
  layoutClient := fActiveForm.FindComponent('LayoutClient');
  //if Assigned(layoutClient) then
  LayoutContainer.AddObject(TLayout(layoutClient));

end;


Procedure 2

class procedure TFormComp.AbrirForm(AFormClass: TComponentClass; LayoutContainer: TLayout;
   mvMainMenu: TMultiView);
var
  layoutClient, botaoMainMenu: TComponent;
  fActiveForm                : TForm;
begin
try
  AbrirForm(ComponentClass, Layout);
// Encontra o botão de controle de Menu no form a ser exibido para
// associálo ao multiview do formPrincipal
  botaoMainMenu           := FActiveForm.FindComponent('buttMainMenu');
    //  if Assigned(botaoMainMenu) then
// Associa o BotaMainMenu ao MasterButton botão que inibe o MultiView
  mvMainMenu.MasterButton := TControl(botaoMainMenu);

except on E: Exception do
end;
end;


Como posso resolver dessa forma fornecendo duas opções? Há uma maneira melhor de fazer isso? O objetivo da classe é colocar um form dentro de um layout de outro form anteriormente tava no próprio form mas agora precisa ficar em classe separado esse método.
Filipe Lobato

Filipe Lobato

Curtidas 0
POSTAR