Boa tarde,
Possuo uma tela que tem um campo com validação, porem esta validação esta triggando quando eu clico no botão cancelar! Alguém sabe o que há de errado? Para mim não faz tanto sentido a validação ocorrer ao clicar em um botão. Será que a ordem de criação dos objetos está interferindo nisto? Segue o codigo da tela:
DEFINE MSDIALOG oDlg TITLE "Transferencia PA x CP" FROM 000, 000 TO 310, 510 COLORS 0, 16777215 PIXEL
@ 012, 009 SAY lbl_prod PROMPT "Produto:" SIZE 025, 007 OF oDlg COLORS 0, 16777215 PIXEL
@ 010, 044 MSGET txt_prod VAR cxt_prod SIZE 060, 010 OF oDlg COLORS 0, 16777215 ON CHANGE MsgRun('Atualizando informações visuais...','Carregando',{|| novoProd() }) PIXEL F3 "B1PAKT" VALID validProd()
@ 028, 009 SAY lbl_quant PROMPT "Quantidade:" SIZE 030, 007 OF oDlg COLORS 0, 16777215 PIXEL
@ 026, 044 MSGET txt_quant VAR cxt_quant SIZE 060, 010 OF oDlg PICTURE "@E 9999.999" VALID converte() COLORS 0, 16777215 PIXEL
@ 044, 009 SAY lbl_armazem PROMPT "Armazem:" SIZE 025, 007 OF oDlg COLORS 0, 16777215 PIXEL
@ 042, 044 MSGET txt_loc VAR clocal SIZE 060, 010 OF oDlg COLORS 0, 16777215 ON CHANGE newArm1() PIXEL F3 "NNR"
@ 060, 009 SAY oNewArm PROMPT "N.Armazem:" SIZE 040, 007 OF oDlg COLORS 0, 16777215 PIXEL
@ 058, 044 MSGET txt_loc2 VAR clocal2 SIZE 060, 010 OF oDlg COLORS 0, 16777215 PIXEL WHEN .F.
@ 075, 090 BUTTON bt_cancel PROMPT "Cancelar" SIZE 037, 012 OF oDlg ACTION Close(oDlg) PIXEL
@ 075, 133 BUTTON bt_add PROMPT "Adicionar" SIZE 037, 012 OF oDlg ACTION MsgRun('Executando a movimentação...' ,'Carregando...' ,{|| Add()}) PIXEL
@ 009, 111 SAY oSay1 PROMPT "Novo Produto:" SIZE 039, 007 OF oDlg COLORS 0, 16777215 PIXEL
@ 009, 146 SAY oLblNewProd PROMPT lbl_newProd SIZE 127, 007 OF oDlg COLORS 0, 16777215 PIXEL
@ 021, 111 SAY oSay2 PROMPT "Quantidade:" SIZE 030, 007 OF oDlg COLORS 0, 16777215 PIXEL
@ 021, 146 SAY oLblNewQuant PROMPT lbl_newQuant SIZE 030, 007 OF oDlg FONT oFont1 PICTURE "@E 9999.9999" COLORS 0, 16777215 PIXEL
fg_tabela()
novoProd()
ACTIVATE MSDIALOG oDlg
Edit 1: Sim, se eu alterar a ordem de criação dos objetos o foco começa direto no botão, não triggando a validação, porem ela realmente deveria acontecer dessa forma ou é algum erro de lógica da minha parte?