GARANTIR DESCONTO

Fórum Interromper o fluxo de execução de um programa. #354400

26/02/2008

0

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

Responder

Posts

26/02/2008

Pestana_

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


flw.


Responder

Gostei + 0

28/02/2008

Djjunior

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.


Responder

Gostei + 0

28/02/2008

Rodrigo.ce

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

Será que há mais ideias? :?:


Responder

Gostei + 0

28/02/2008

Onjahyr

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] ?


Responder

Gostei + 0

28/02/2008

Djjunior

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


Responder

Gostei + 0

29/02/2008

Rodrigo.ce

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


Responder

Gostei + 0

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

Aceitar