Spulciando un pò di documentazione, sul sito ufficiale, ho fatto una bella scoperta, che sconvolge abbastanza la conversione dei progetti dalla 2 alle 3.
Nel nuovo Gambas3, a quanto pare, l'ordine con cui devono essere passati i parametri, richiesti e facoltativi, per la creazione di un oggetto, grafico e non, in pratica la chiamata del metodo nascosto _new(), è stata completamente stravolta.
Nella versione Gambas2, i parametri venivano letti partendo da destra verso sinistra, ovvero gli ultimi parametri, quelli più a destra, servivano all'oggetto più alto nella catena di inerenze. In pratica, se si creava un controllo, ad esempio una TextBox, perdonalizzato in modo da accettare altre impostazioni a livello di creazione, i parametri necessari, ovvero il container parent e le altre personale implementazioni seguivano il seguente ordine:
_new( parametro1, parametro2, ..., Container )
quindi il contenitore, opzionale o meno, risultava l'ultimo della lista.
Nella versione Gambas3, questa logica viene completamente stravolta, e non parlo di una semplice inversione di ordinamento, bensì di uno stravolgimento che tiene conto anche de un parametro è opzionale o obbligatorio.
Secondo questa nuova logica, le regole da seguire ora sono le seguenti:
1) i parametri obbligatori seguono la logica antica, ovvero l'ultimo parametro è quello relativo all'oggetto parent più in alto della catena
2) i parametri opzionali seguono anch'essi la stessa logica
questo però separando completamente i due blocchi in parti distinte, ognuna con il proprio ordine.
In definitiva avremo un misto composto da due blocchi: parametri obbligatori, parametri opzionali.
Spero di aver spiegato bene questa nuova implementazione che, a mio avviso, complica di molto eventuali conversioni di vecchi progetti. Inoltre, vista la divisione in due blocchi distinti, è necessario fare attenzione anche ai due ordinamenti.
...lungi da me commentare tale modifica...