Qual melhor forma de cria um MDIChild ?
Olá, estou desenvolvendo um aplicativo no formato de IDE, com vários MDI Filhos, porem eles tem funcoes dentro...
Normalmente eu criaria assim:
Mas como dentro dele tem funcoes e componentes de execucao de scripts, como executo elas? sendo que cada um eh um arquivo separado...
Estive pensando em criar um form herdado do TFrmEditor, mudando o name para o nome do arquivo, assim ficaria mais facil identificar qual tela...
Desde já agradeço.
Fellipe H.
Normalmente eu criaria assim:
FrmEditor := TFrmEditor.Create(Application); FrmEditor.Show;
Mas como dentro dele tem funcoes e componentes de execucao de scripts, como executo elas? sendo que cada um eh um arquivo separado...
Estive pensando em criar um form herdado do TFrmEditor, mudando o name para o nome do arquivo, assim ficaria mais facil identificar qual tela...
Desde já agradeço.
Fellipe H.
Titanius
Curtidas 0
Respostas
Massuda
06/10/2005
...vários MDI Filhos, porem eles tem funcoes dentro...como dentro dele tem funcoes e componentes de execucao de scripts, como executo elas?
Geralmente cria-se uma classe de form MDI filho base que contem funções abstratas (ou com implementações vazias); classes derivadas implementam o que for preciso.No seu form principal, para acessar essas funções você faz um typecast no MDIChildren correspondente.
GOSTEI 0
Titanius
06/10/2005
hehe.. nao entendi muito bem nao massuda :oops:
voce poderia me fornecer alguns links, ou onde eu posso ver isso?
Obrigado
voce poderia me fornecer alguns links, ou onde eu posso ver isso?
Obrigado
GOSTEI 0
Massuda
06/10/2005
Vamos supor que todos os seus forms MDI filhos possam ser enviados via email através do método EnviarPara existente em cada form...nesse caso, para poder usar isso no form principal, o mais fácil é ter uma classe base para os forms filhos......no exemplo, EnviarPara está marcada como sendo abstrata, isto é, não tem implmentação nesta classe, mas (deve) ter nas classes derivadas.
O próximo passo seria fazer todos os seus forms MDI filhos serem herdados desse form TMDIBase e implementarem suas próprias versões de EnviarPara.
Daí, no seu form principal, quando você quiser executar EnviarPara, simplesmente faça...
Se isso não resolver, explique melhor seu problema.
type TMDIBase = class(... ... public procedure EnviarPara(Quem: string); virtual; abstract; ...
O próximo passo seria fazer todos os seus forms MDI filhos serem herdados desse form TMDIBase e implementarem suas próprias versões de EnviarPara.
Daí, no seu form principal, quando você quiser executar EnviarPara, simplesmente faça...
TMDIBase(ActiveMDIChild).EnviarPara(...);
Se isso não resolver, explique melhor seu problema.
GOSTEI 0
Titanius
06/10/2005
Valeu massuda a idéia é essa.. então deixa ver se eu entendi, eu crio um Form MDIChild padrão, com essas classes e tals, depois eu crio meus Forms herdando desse Form Base, e automaticamente herdando as funcoes... daih eh soh fazer isso q vc mostrou, nao eh isso?
[]s
[]s
GOSTEI 0
Massuda
06/10/2005
Aparentemente sim.
GOSTEI 0
Eniorm
06/10/2005
Eu to usando MDI e tem funcionado bem....
No evento OnClose desse form eu uso
Assim evita de abrir o mesmo form mais de uma vez
if (NomeForm = Nil) then Application.CreateForm(TNomeForm,NomeForm); NomeForm.Show;
No evento OnClose desse form eu uso
Release; NomeForm := Nil;
Assim evita de abrir o mesmo form mais de uma vez
GOSTEI 0