Fórum Qual melhor forma de cria um MDIChild ? #298548

06/10/2005

0

Olá, estou desenvolvendo um aplicativo no formato de IDE, com vários MDI Filhos, porem eles tem funcoes dentro...

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

Titanius

Responder

Posts

06/10/2005

Massuda

...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.


Responder

Gostei + 0

06/10/2005

Titanius

hehe.. nao entendi muito bem nao massuda :oops:

voce poderia me fornecer alguns links, ou onde eu posso ver isso?

Obrigado


Responder

Gostei + 0

06/10/2005

Massuda

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...
type
  TMDIBase = class(...
  ...
  public
    procedure EnviarPara(Quem: string); virtual; abstract;
...
...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...
TMDIBase(ActiveMDIChild).EnviarPara(...);

Se isso não resolver, explique melhor seu problema.


Responder

Gostei + 0

06/10/2005

Titanius

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


Responder

Gostei + 0

06/10/2005

Massuda

Aparentemente sim.


Responder

Gostei + 0

07/10/2005

Eniorm

Eu to usando MDI e tem funcionado bem....

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


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar