terça-feira, 13 de março de 2018

Como obter a classe ancestral?

Durante a execução de um projeto surgiu uma dúvida: "Como saber qual a classe exatamente ancestral a que eu criei?"

Acredito que esta situação seja comum para muitos programadores, que assim como eu, estão nesta jornada.

Para mostrar a solução, vou usar um exemplo:

* Crio uma classe chamada "TNomeStringField", ela deriva de "TStringField", segue a declaração:

  TNomeStringField = class( TStringField )
  end ;

* Declaro um "objeto" do tipo TNomeStringField :

var
     TNome: TNomeStringField ;

* Instancio o objeto de fato:

TNome := TNomeStringField.Create( self ) ;

* Para obter o nome da class do objeto TNome, faça o seguinte:

showmessage( TClass( TNome.ClassType ).ClassName ) ;

* Para obter o nome da class exatamente ancestral à que eu criei:

if TNome.ClassParent <> nil then showmessage( TNome.ClassParent.ClassName ) ; 

obs: Veja que antes de obter o valor de ClassParent, fiz a verificação se esta propriedade era diferente de nil.

É isso!

Até+

Nenhum comentário:

Postar um comentário

PHP para iniciantes - Vídeo #1