Sobrecarga aninhada com procedure (Form dentro de Layout)
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.
Procedure 1
Procedure 2
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.
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
Curtidas 0