Em desenvolvimento de classes, normalmente temos um método construtor e um método de destruição.
No Tl++, qual queria o método de destruição?
Sabem me informar se, ao disparar as chamadas FwFreeVar ou FreeObj este método é acionado de alguma forma, ou se as rotinas simplesmente transformam a variável em NIL?
Advpl ou Tlpp não possuem métodos construtores ou métodos destrutores.
Por convenção, por assim dizer, o método construtor é o método new, e o destrutor é o método destroy, porém isso não é uma regra.
As funções FWFreeVar e FreeObj apenas limpam o objeto da memória, nenhum método destrutor é chamado, portanto se você tem um método destrutor, o correto seria chamar esse método antes de utilizar o FreeObj.
Importante!
O método construtor da classe, na verdade é o primeiro método invocado.
De maneira direta, ao limpar uma variável onde uma classe foi criada esta instância?
Method Destroy() Class TTeste
fwFreeVar( @Self:cLastError ) // libero a propriedade da classe
fwFreeVar( @Self:cMinorError ) // libero a propriedade da classe
fwFreeVar( @Self:cDetailError ) // libero a propriedade da classe
fwFreeVar( @Self ) // libero a instancia da própria classe
Lucas, não é bom fazer um FreeObj de self, pois você basicamente comete suicídio, que criou a instância da sua classe deve ser o responsável por eliminar ela. Você pode criar um método destroy que a mata as suas dependências, mas não se mate! =)