Sobrecarga aninhada com procedure (Form dentro de Layout)
25/04/2017
0
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
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)