Interromper o fluxo de execução de um programa.

Delphi

26/02/2008

no trecho abaixo...

Application.CreateForm(TForm_Recebimento, Form_Recebimento);
Form_Recebimento.ShowModal;
Form_Recebimento.Free;
.
.
.
bla bla bla
.
.
.

...as linhas posteriores a ShowModal (linha 2) apenas continua a serem executadas quando a janela modal for fechada!

porém, como fazer o mesmo em...

Application.CreateForm(TForm_Recebimento, Form_Recebimento);
Form_Recebimento.Show;
.
.
.
bla bla bla
.
.
.


... nesse caso as linhas após o show sao executadas antes do fechamento do formulário aberto!!!

como interromper essa execução até que o form aberto seja fechado??? :?:


Rodrigo.ce

Rodrigo.ce

Curtidas 0

Respostas

Pestana_

Pestana_

26/02/2008

Rodrigo pelo o que eu sei não tem como fazer o que você quer, você precisa utilizar o showModal mesmo.


flw.


GOSTEI 0
Djjunior

Djjunior

26/02/2008

a única opção ao showModal seria o seguinte ´POG´

Cria uma variavel tipo :
MyPOG: boolean;

antes do show seta para false e depois faz um looping

while not MyPOG do
   Application.ProcessMessage;


qdo vc fechar o outro form passa o MyPog pra true e pronto.


GOSTEI 0
Rodrigo.ce

Rodrigo.ce

26/02/2008

sim, isso eu pensei, mais é como vc msm disse é um POG!!!
mais obrigado.

Será que há mais ideias? :?:


GOSTEI 0
Onjahyr

Onjahyr

26/02/2008

Não vejo razão para mais idéias, programação é lógica e não outra coisa, porém, por quê não fazer o que você deseja no evento onClose desse [b:1f65fb3403]Form_Recebimento[/b:1f65fb3403] ?


GOSTEI 0
Djjunior

Djjunior

26/02/2008

pessoalmente, não gosto de dependência multua tipo a unit chamada ter dependência da que a chamou, mas, nesse caso realmente não vejo saida melhor do que por realmente por esse código no OnClose da 2º unit


GOSTEI 0
Rodrigo.ce

Rodrigo.ce

26/02/2008

A solução apresentada funciona! no entanto, o cenário real não é como ilustrei, eu o expus dessa maneira para simplificar.

obrigado pelas respostas!!!


GOSTEI 0
POSTAR