If Application.MessageBox - porque fica se repetindo?

Delphi

04/05/2004

ESTOU USANDO O CÓDIGO ABAIXO PARA ATUALIZAR MINHA DE ´TBLCEDENTES´. O PROBLEMA É QUE NESSA PARTE DO CÓDIGO:
´ If Application.MessageBox(´O Limite de Crédito para este Cedente foi Excedido! Deseja continuar?´,
´Pergunta´,MB_YESNO + MB_ICONQUESTION) <> IDNO then ´

A MENSAGEM FICA SE REPETINDO PARA CADA REGISTRO NA TBLSAC_CED!
COMO POSSO FAZER PARA QUE A MENSAGEM APARECA APENAS UMA VEZ, VISTO QUE O CÓDIGO SÓ É EXECUTADO AO SAIR DO CAMPO VENCIMENTO!
OBS: É CLARO, ISSO SÓ ACONTECE QUANDO ESCOLHO A OPÇÃO ´IDYES´



AQUI ESTÁ O CÓDIGO COMPLETO!


procedure TFrmCed_Sac.DBEVencimentoExit(Sender: TObject);
var
LimiteCred, Saldo, CredUsado: Double;
begin
CredUsado := 0;
Saldo := DMFactoring.tblCedenteSALDO.AsFloat;
LimiteCred := DMFactoring.tblCedenteLIMITE_CRED.AsFloat;

DMFactoring.TblSac_Ced.First;

While Not (DMFactoring.TblSac_Ced.Eof) And (DMFactoring.TblSac_CedBAIXADO.AsString = ´N´) Do
Begin
CredUsado:= DMFactoring.TblSac_CedVALOR.Value + CredUsado;
Saldo := LimiteCred - CredUsado;
DMFactoring.TblCedente.Edit;
DMFactoring.tblCedenteCREDITO_EM_USO.Value := CredUsado;
DMFactoring.tblCedenteSALDO.Value := Saldo;
DMFactoring.TblCedente.Post;
DMFactoring.TblCedente.Refresh;

If DMFactoring.tblCedenteCREDITO_EM_USO.AsFloat > DMFactoring.tblCedenteLIMITE_CRED.AsFloat Then
Begin
If Application.MessageBox(´O Limite de Crédito para este Cedente foi Excedido! Deseja continuar?´,
´Pergunta´,MB_YESNO + MB_ICONQUESTION) <> IDNO then
DMFactoring.TblCedente.Edit;
DMFactoring.tblCedenteCREDITO_EM_USO.Value := CredUsado;
DMFactoring.tblCedenteSALDO.Value := Saldo;
DMFactoring.TblCedente.Post;
DMFactoring.TblCedente.Refresh;
DMFactoring.TblSac_Ced.Refresh;
DMFactoring.TblSac_Ced.Next;
End;

End;

If Application.MessageBox(´Deseja incluir um novo registro?´,
´Pergunta´,MB_YESNO + MB_ICONQUESTION) <> IDNO then
Begin
DMFactoring.TblSac_Ced.Insert;
FrmPrincipal.BtnProcurarClick(Sender);
End;

End;


Alexandretavares

Alexandretavares

Curtidas 0

Respostas

Paulo_amorim

Paulo_amorim

04/05/2004

Olá

Vc já não tinha postado essa dúvida antes? Que eu me lembre, ela tinha sido resolvida... mas tudo bem

a MessageBox está sendo mostrada dentro do WHILE...assim, para cada registro ele cai nesse MessageBox...

para resolver, tire do While a mensagem...

ou faça
if Message... = IDNO then Break


ou então, se ele quiser continuar, defina um Flag para TRUE
 if (bContinua=TRUE) and (messagebox....... <> IDNO) then


Até+


GOSTEI 0
POSTAR