E' probabile che quanto ho scritto, non sia più un problema, ma all'epoca dell'uscita della 2.0.0 avevo rifatto delle prove e il problema con i tab dinamici c'era ancora.
Quello che volevo dire, in poche parole, è che la creazione dinamica di oggetti all'interno di una TabBox, e in particolare in corrispondenza con la creazione di nuove tab, ha dei problemi in cancellazione quando la tab viene poi rimossa.
La causa di ciò è causata dal fatto che la cancellazione della tab non elimina anche i suoi figli, almeno per quanto riguarda gli oggetti creati dinamicamente. Anche eliminandoli manualmente (es. con Delete() o var=NULL), questi rimangono referenziati all'interno della tab contenitrice e, se si prova ad eliminarla, il programma và in crash.
NOTA: Quando si creano oggetti all'interno di un contenitore (come ad esempio una TabBox), per poter gestire gli eventi dei singoli oggetti, è necessario agganciarli al contenitore stesso; per questa operazione viene usato un metodo di Object:
in questo modo tutti gli eventi dei nuovi oggetti verranno catturati dal suo contenitore, e si può quindi gestire dinamicamente il giochetto.
Quando l'oggetto dinamico non serve più, è necessario fare l'operazione contraria, con un'altro metodo statico di Object:
fatto ciò, l'oggetto si può eliminare, agendo in due modi:
La cosa è abbastanza normale, e ha anche una logica seguita nella maggior parte di altri linguaggi; ma il problema invece è che, per motivi non meglio identificati, il riferimento all'oggetto cancellato viene mantenuto dagli oggetti cui ha fatto parte, rendendo problematica una eventuale eliminazione di questi ultimi.
Spero di aver girato meglio il discorso; se poi qualcuno ha avuto diversa esperienza, o ha trovato qualche trucco per risolvere, ben venga.
Bye