Buscar

Criando uma instância de classe à partir do seu nome (string)

Código

/*

Senhores bom dia, essa é a minha primeira participação aqui no site, eu gostaria de contribuir com uma dica para criar uma instância de objeto a partir do nome da sua classe, isso mesmo a partir da string que contém o nome de classe.

Eu já detalhei com exemplo o artigo e disponibilizei no meu blog, abaixo deixo o link para aqueles que estivem interessados possam ler o artigo na íntegra com todos os detalhes.
Espero estar colaborando corretamente para o site.

Obrigado!

http://josehenriquebr.blogspot.com/2009/09/criando-uma-instancia-de-classe-partir.html

Dica resumida:

*/

"Interface"

TminhaClasse = class (TDataModule)
  private
    FPrimeiraClasse: String;
    procedure SetPrimeiraClasse(const Value: String);
  published
    property PrimeiraClasse:String read FPrimeiraClasse write SetPrimeiraClasse;
  end;

  TMinhaSegundaClasse = class(TminhaClasse)
  private
    FSegundaClasse: STring;
    procedure SetSegundaClasse(const Value: STring);
  published
    property SegundaClasse:STring read FSegundaClasse write SetSegundaClasse;
  end;

"Implementaton"

procedure TfrmCriarClasseString.InstanceClasse(AClassName: String);
var
  lObj: TMinhaSegundaClasse;
  Pers: TPersistentClass;
begin
  Pers := GetClass(AClassName);

  lObj := (Pers.Create) as TMinhaSegundaClasse;

  if Assigned(lObj) then
    try
      lObj.FPrimeiraClasse := 'Propriedade da Classe ancestral';
      lObj.FSegundaClasse  := 'Propriedade da Segunda Classe';

      Edit2.Text :=lObj.FPrimeiraClasse;
      Edit3.Text :=lObj.FSegundaClasse;
    finally
      lObj.Free;
    end
end;

Publicidade

Vote na dica




Quantidade de votos: 0 votos
Aceitação: 0%


Detalhes da dica

Categoria: Object pascal
Adicionada dia: 19/10/09
Por: Jose Henrique
Visualizada: 10603 vezes

Planeta Delphi - Tudo sobre programação Delphi Planeta Delphi - www.planetadelphi.com.br - Todos os direitos reservados | Copyright 2001-2009