Sì, il repository è quello della versione che stò sviluppando.
Ad ogni modo, se leggi la doc ufficiale, per ogni oggetto descritto, derivante da Control, è obbligatorio il passaggio di un parametro, che corrisponde all'oggetto che lo contiene (Container).
Tutto ciò è valido, ad eccezione della classe Form.
Però la cosa è possibile comunque realizzarla per le classi Form, utilizzaando il metodo costruttore "_new()", nel quale puoi definire zero o più parametri a tua scelta, che verranno passati nella creazione dell'oggetto.
Ti faccio un semplice esempio...
Ammettiamo che tu abbia creato un oggetto Form, una bella finestrina vuota, su cui lavorare, inserendo poi gli oggetti che ti servono.
All'inizio della classe (praticamente la parte sorgente della Form), dichiari il metodo costruttore, inserendo alcuni parametri:
PUBLIC SUB _new( parent AS Object, OPTIONAL titolo AS String = "" )
...
END
Il metodo costruttore così creato, permette il passaggio di ulteriori nuovi parametri (la Form, come detto, non ne ha manco uno).
Nell'esempio ho definito un parametro Object, e un parametro opzionale di tipo String.
Se, ammettiamo il caso, tu voglia definire la Form come una finestra figlia di un padre noto (di solito la madre è sicura, il padre no...), quando crei l'oggetto, gli passi il "parent", che corrisponde alla Form padre, o qualsiasi altra cosa che ti serve per la sua gestione.
...Il secondo parametro è, ovviamente, un esempio non utile al nostro discorso...
Quindi, nella creazione della tua Form, ad esempio tramite un pulsante, tu avresti questo codice:
PUBLIC SUB Button_Click()
DIM formFiglia AS NEW TuaForm( ME, "Titolo" )
formFiglia.Show()
END
dove con "ME" identifichi la finestra padre.
La logica è applicabile a qualsiasi oggetto, o classe, che tu definisci nella tua applicazione, indipendentemente se grafico o meno.
Ricorda che, comunque, Gambas esegue in sequenza:
1) il costruttore della classe superiore, ovvero la classe Window con cui è struttura Form, e da cui è derivata;
2) il costruttore della tua form.
Nel caso il costruttore della classe superiore preveda parametri, questi devono essere passati come gli ultimi parametri, durante la costruzione della classe.
Un esempio può essere un oggetto Control, che ha come parametro, appunto, l'oggetto che lo contiene:
PUBLIC SUB _new(parent AS Container) 'costruttore di Control
PUBLIC SUB _new(parent AS Object, title AS String, superParent AS Container) 'costruttore della tua Form
Comunque, io direi che un'occhio al wiki, su cui ho scritto qualcosa in merito, non guasterebbe...
Bye