Nel cammino di sviluppo e prova del mio programma, mi capita ancora di incontrare comportamenti, per me anomali, nell'ide di Gambas, dovuti probabilmente alla mia attuale conoscenza del suo motore. Vengo al dunque:
Ho inserito l'evento CodiceVoceContabile_LostFocus del corrispondente controllo di tipo combobox. In esso accerto la correttezza del testo inserito, combinato con la natura del movimento di cassa corrispondente (Entrata o Uscita). L'accertamento tiene conto del limite estremo valido del gruppo di codici numerici a cui può appartenere il conto e qualora il codice cercato non viene trovato dovrebbe essere emesso un MessageBox di errore prima di chiudere brutalmente il programma. Riporto qui di seguito il passo di prgramma in questione:
PUBLIC SUB CodiceVoceContabile_LostFocus()
.........bla.....bla.....bla.........................................
FOR EACH RecTab
IF RecTab!NomeVoce = $_VoceConto THEN
i_CoVoMov = RecTab!NumVoce 'Codice di CONTO, corrispondente alla Voce contabile primaria
i_UltCtogrup = i_CoVoMov + 999
ENDIF
IF i_CoVoMov > 0 THEN
IF RecTab!NumVoce <= i_UltCtogrup THEN
IF RecTab!NomeVoce = $_VoceSotCto
i_CoVoMov = RecTab!NumVoce 'Codice di SOTTOCONTO, corrispondente alla Voce contabile secondaria
$_PartMovSiNo = RecTab!ContrPartSiNo
BREAK
ENDIF
ELSE
'LabFrm2RicPiaCo:
Message.Error("Attenzione! -> Record 'NON TROVATO'" & Chr(10) & Chr(10) & "durante la lettura della Tabella ContabFam.db!piancont'" & Chr(10) & Chr(10) & "in Form2.MovDigOk_Click.LabFrm2RicPiaCo" & Chr(10) & Chr(10) & " il programma verrà chiuso")
QUIT
ENDIF
ENDIF
NEXT
Ebbene, non capisco perché, al momento dell'esecuzione della riga relativa al
Message.Error, anzicché emettere il messaggio, viene nuovamente schedulato l'evento corrente (PUBLIC SUB CodiceVoceContabile_LostFocus()) e, questa volta, alla ripetizione della riga col precedente messaggio di errore, viene fornito il messaggio:
Message box already displayed
Che vuol, dire?
Ciao a tutti