Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

thalesoli

Formulário Herdado no MDI

Recommended Posts

Bom dia Pessoal

 

Estou desenvolvendo um software baseado em MDI, no qual as janelas de cadastro herdam as suas características (ações e aspectos visuáis) de um formulário pai.

 

A minha dúvida está na destruição dos formulários filhos. Quando chamo o formulário utilizo o sequinte código:

 

if not Assigned(fmCliente) then  fmCliente := TfmCliente.Create(Application)else  fmCliente.Show;
Neste código eu protejo o sistema de criar mais de uma cópia de cada formulário. Quando o formulário fecha, o formulário pai tem um código onclose que finaliza os formulários:

 

procedure TfmPai.FormClose(Sender: TObject; var Action: TCloseAction);begin  if Assigned(ds_Ctrl.Dataset) then     ds_Ctrl.Dataset.Cancel;  Action := caFree;end;
Este código finaliza o formulário filho mas não limpa a variável, aí quando se clica novamente no menu correspondente ao formulário, ele não abre pois a variável não está nula.

 

Em cada formulário filho estou colocando o seguinte:

 

procedure TfmCliente.FormClose(Sender: TObject; var Action: TCloseAction);begin  inherited;  fmCliente := nil;end;
Desta maneira corrige a falha. Mas eu gostaria de fazer isso diretamente no formulário pai. mas o mesmo código, apenas substituindo o nome do formulário pelo self, não funciona.

 

Alguém que já tenha trabalhando com MDI podeira me ajudar nesta questão?

 

desde já agradeço

 

Falow

 

http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal ninguém pode me ajudar nessa também... :blink:

 

é o segundo post que ninguém responde nada...

 

ninguém sabe nada sobre MDI?

 

falow

 

http://forum.imasters.com.br/public/style_emoticons/default/bye1.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

não sei se da certo em MDI... mas tenta colocar um Free pra eles.

 

if not Assigned(fmCliente) thenfmCliente := TfmCliente.Create(Application)fmCliente.Showmodal;fmCliente.Free

tenta assim.. qualquer coisa volta ai!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.