du_nirvana Postado Janeiro 22, 2007 Denunciar Share Postado Janeiro 22, 2007 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 aquiinitializationRegisterClass(TForm2); end.Para criar esse formulário, poderia ser usada uma função semelhante a seguinte:function CriaForm(const NomeForm: string): TForm;varTClasse : TPersistentClass;beginResult := nil;TClasse := GetClass(NomeForm);if (TClasse <> nil) and TClasse.InheritsFrom(TForm) thenResult := TFormClass(TClasse).Create(nil);end;varForm : TForm;beginForm := CriaForm('Form2');if not Assigned(Form) thenMessageDlg('Form não registrado!', mtError, [mbOK], 0)elsebeginForm.ShowModal;Form.Free;end;end; O problema é que sempre caio em "Form não registrado".. , alguém sabe como resolver ? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 du_nirvana Postado Janeiro 22, 2007 Autor Denunciar Share Postado Janeiro 22, 2007 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 umInitialization RegisterClass(TCACE0010);na unit do form que se deseja chamar, no meu caso o form CACE0010... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Janeiro 22, 2007 Denunciar Share Postado Janeiro 22, 2007 cara, que visual basic é esse que eu num conheco ahahahahmovido Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
du_nirvana
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
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.