stò pensando di stoppare temporaneamente lo sviluppo, altrimenti mi ricoverano
allo scopo di evitarti l'esaurimento, mantenendo però l'allenamento, ti sottopongo due anomalie riscontrate nelle ultime prove.
- PgConfigItem.Encode()
nelle righe di verifica dei valori numerici usi la funzione IsDigit(Value), questa potrebbe darti problemi se passi come
parametro un numero negativo. Non sarebbe meglio usare IsNumber()?
- PgApplication.AddProject()
la riga:
With projectPanel = New PgProjectPanel($mainPanel.GetTab(index), w, h) As "ProjectPanel"
dovrebbe essere, credo,
With projectPanel = New PgProjectPanel($mainPanel.SetTabIndex(index), w, h) As "ProjectPanel"
inoltre l'errore UnknowMethod generato poichè il metodo GetTab non esiste nella classe PgMainPanel
non viene registrato nel log poichè nella sub PgLogFileWriter.Write() esegui il controllo:
If (messageEvent.Level.IsGreater(Me.MaxLevel)) Then
dove ME.MaxLevel="Info" mentre messageEvent.Level= "Error"
non so se la cosa è intenzionale in questa fase.
Ho effettuato subito un controllo, e ho verificato che:
1) i controlli in Encode erano in effetti un pò vaghi e non proprio corretti. Le funzioni che mette a disposizione Gambas non sono tutte adatte, e alcune non sono neppure presenti, nonostante siano menzionate nella documentazione. Ad ogni modo ho riscritto il metodo, e mi sono basato sulla gestione degli errori, in modo da far lavorare Gambas al posto mio.
2) il metodo GetTab in effetti non esiste, anzi esisteva ma è stato sostituito dalla funzione GetTabPanel, più indicativa. Ho corretto il problema.
3) La gestione del log presentava un errore, che stavo appunto correggendo. Se vuoi un log più dettagliato, basta impostarlo nella finestra delle impostazioni, oppure modificare la voce DEBUG nel file di configurazione, inserendo la stringa "ALL" o "TRACE". I livelli ammessi sono:
OFF, FATAL, ERROR, WARNING, INFO, DEBUG, TRACE, ALL. Per default è impostato su INFO.