Fórum Duvida em MDI #323457

15/06/2006

0

  if (F4Fornecedores = nil) then
    Application.CreateForm(TF4Fornecedores,F4Fornecedores);

  ShowMessage(IntToStr(xcodigo));



O formulario F4Fornecedores é um formulario de consulta de fornecedores, neste formulario a variavel xcodigo é populada, com o codigo do fornecedor, e quando o form f4 é fechado no formulario onde foi chamado o F4 ira utilizar esta variavel para localizar o fornecedor, porem estranho que o showmessage é chamado antes de eu fechar o f4, entao a variavel fica sempre zerada, como posso resolver isso?
Abs


Felipeiw

Felipeiw

Responder

Posts

20/06/2006

Rogeriorock

Bem, meu amigo eu tb estranhei este comportamento, quando comecei no delphi, mas o delphi aparentimente diferente de outras linguagens faz o procesamento dele de forma assigrona, quer dizer ele executa uma linha e passa logo para a linha seguinte.tente trabalha com o modal result do form.No botão que fecha o form mude a propriedade ModalResult do Form para mrOk e teste isto em um loop a onde vc quer executar o showmessage, e so execute se o modalresult for igual a mrok.


Responder

Gostei + 0

20/06/2006

Paullsoftware

Para facilitar o seu trabalho, procure passar o codigo do fornecedor no momento em que ele escolher o fornecedor e clicar no Ok ou der um duplo clique no caso de uma grid...

xCodigo := TabelaFornecedorCodigo.AsInteger;

Quando usamos ShowModal o código é parado e somente continua quando fechamos o form chamado, já quando não usamos o Modal apenas o Show ou Create o código continua por exemplo:

Form1.ShowModal;
ShowMessage(´Aviso´); //Aqui somente seria mostrado quando fechase o form

Form1.Show;
ShowMessage(´Aviso´); //Aqui seria mostrado antes do form ser fechado, pois, o código não é parado...

espero ter ajudado :wink:


Responder

Gostei + 0

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

Aceitar