Duvida em MDI
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
Curtidas 0
Respostas
Rogeriorock
15/06/2006
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.
GOSTEI 0
Paullsoftware
15/06/2006
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:
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:
GOSTEI 0