Classes Descendentes

Delphi

13/04/2005

Olá, é sabido que a partir de uma classe é possível listar seus ancestrais. E o contrário, também é possível? Ou seja, a partir de uma classe listar as classes descendentes.

Grato,


Marioguedes

Marioguedes

Curtidas 0

Respostas

Massuda

Massuda

13/04/2005

...é sabido que a partir de uma classe é possível listar seus ancestrais.
Como é que se faz isso?


GOSTEI 0
Beppe

Beppe

13/04/2005

E o contrário, também é possível? Ou seja, a partir de uma classe listar as classes descendentes.

De maneira geral, não. Cada classe sabe o seu ancestral imediato(Classe.Parent), mas não conhece seus descendentes. O que pode fazer é guardar as classes em uma lista e percorrer ela com a pergunta Classe.InheritsFrom.


GOSTEI 0
Marioguedes

Marioguedes

13/04/2005

Massuda, a rotina que eu uso é assim:

procedure TForm1.Button1Click(Sender: TObject);
const
QUEBRA = #1310 + ´  |´ + 1310;
var
listagem : string;
classe   : TClass;
begin
  classe := TButton; //Coloque aqui a classe a ser listada
  while (classe <> TObject) do
    begin
    listagem := listagem + classe.ClassName + QUEBRA;
    classe   := classe.ClassParent;
    end;
  listagem := listagem + ´TObject´;
  ShowMessage(listagem);
end;



GOSTEI 0
POSTAR