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

Chamar Form Dinamicamente..


du_nirvana

Pergunta

Bom dia,

Em minha aplicação possuo um menu dinamico, onde ao clicar em determinado botão um form é chamado, fiz a seguinte maneira:

implementation

{$R *.dfm}

// Todo o código da unit aqui

initialization

RegisterClass(TForm2);

end.

Para criar esse formulário, poderia ser usada uma função semelhante a seguinte:

function CriaForm(const NomeForm: string): TForm;

var

TClasse : TPersistentClass;

begin

Result := nil;

TClasse := GetClass(NomeForm);

if (TClasse <> nil) and TClasse.InheritsFrom(TForm) then

Result := TFormClass(TClasse).Create(nil);

end;

var

Form : TForm;

begin

Form := CriaForm('Form2');

if not Assigned(Form) then

MessageDlg('Form não registrado!', mtError, [mbOK], 0)

else

begin

Form.ShowModal;

Form.Free;

end;

end;

O problema é que sempre caio em "Form não registrado".. , alguém sabe como resolver ?

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Olá pessoal,

Consegui resolver meu problema da seguinte maneira:

with TFormClass(

FindClass(vl_nome)).Create(Self) do

try

ShowModal;

finally

Free;

end;

vl_nome é o nome da minha classe, como eu guardo em meu banco o nome do form, só preciso recuperar essa informação e adicionar um "T" no inicio, sem esquecer de colocar um

Initialization

RegisterClass(TCACE0010);

na unit do form que se deseja chamar, no meu caso o form CACE0010...

Link para o comentário
Compartilhar em outros sites

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,3k
    • Posts
      652,5k
×
×
  • Criar Novo...