Ir para conteúdo
Fórum Script Brasil
  • 0

Criar classe filha pelo nome e atribuir em variável de classe pai


arce

Pergunta

Olá

Tenho uma classe principal chamada TTabela. Através de herança crio outras classes filhas, que neste exemplo vou chamar de TUsuario. Criei uma tela de pesquisa base que receberá as configurações de acordo com as informações da Classe referente. Gostaria de saber se é possível declarar uma variável private do tipo TTabela, e sobrepor o conteúdo com a classe filha (TUsuario), uma vez que preciso criar a classe em tempo de execução para uso dos métodos internos do form.

unit untPsqBase;

interface

uses  (...);

type
  TfrmSPsqBase = class(TfrmBase)
    cbbFiltro: TComboBox;
    lbl1: TLabel;
    edtSearch: TEdit;
    lbl2: TLabel;	
  private
    FTabela: TTabela;
  public
    constructor Create(AOwner: TComponent; cClass: String); overload;
  end;

var
  frmPsqBase: TfrmPsqBase;

implementation

{$R *.dfm}

uses uDM;

constructor TfrmSearchEntity.Create(AOwner: TComponent; cClass: String);
begin
  inherited Create(AOwner);
  FTabela := TTabela(GetClass(cClass)); // cClass = 'TUsuario'  
end;

end.

Consigo fazer a instância com TForms como pode ser visto no exemplo abaixo:

procedure TfrmBase.btnPesqClick(Sender: TObject);
var
  oClasseForm: TFormClass;
  cClasseForm: String;
begin
  inherited;
  cClasseForm := 'TfrmPsq'+scTabela;
  oClasseForm := TFormClass(GetClass(cClasseForm));
  if(Assigned(oClasseForm))then
  begin
    giCodigoPesquisado := 0;
    with(oClasseForm.Create(Self))do
    begin
      ShowModal;
      free;
    end;
  end;
end;  

 

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...