Per forza: non hai verificato il caso specifico che dà luogo a questo effetto collaterale.Originariamente inviato da mondobimbi
La catena delle chiamate a Free si sussegue ordinatamente come da me pensato dall'ultimo figlio a scendere fino all'antenato più lontano, questo lo ho verificato con il debugger. Mai la catena si è interrotta e la chiamata è stata fatta direttamente ad un genitore.
Prova questo codice:
Vedrai che la chiamata al metodo Free non esegue il tuo codice, poiché il metodo Free non va modificato e non va reintrodotto, ma è necessario fare l'override del metodo Destroy.codice:var Obj: TObject; Obj := TTBase.Create; // ... Obj.Free;
A parte tutto, io non capisco quale sia il problema nello spostare il codice da Free a Destroy... certo, a meno che tu non voglia ritrovarti con effetti collaterali e problemi in più rispetto a quelli che dovrebbe normalmente risolvere il software. :master:

Rispondi quotando