Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá!
Estou procurando um modo de criar uma procedure para carregar os formulários dinamicamente. Ou seja, ao invés de escrever para todos os formulários a mesma coisa:
Application.CreateForm(TFormulario1,Formulario1); TFormulario1.ShowModal; TFormulario1.Release;
Eu quero uma procedure que faça isso por mim. Algo como
abrirFormulario(TFormulario1);
Por que assim, no futuro eu vou precisar fazer verificações antes de dar o showmodal, e com a procedure ficaria muito mais fácil do que implementar um a um.
Seguem minhas tentativas (todas frustradas):
procedure TFMenu.criaform(const FormName : string);var fc : TFormClass; f : TForm;begin fc := TFormClass(FindClass(FormName)); f := fc.Create(Application); f.ShowModal; f.Release; //adaptado de: http://delphi.about.com/library/weekly/aa080905a.htmend;procedure TFMenu.criaform(NomeForm: TForm);//var// Form: TForm; // isto é somente para omitir uma parametro na xamada da procedurebegin try //troquei esta linha pela de baixo, também dá erro //TForm(NomeForm).Create(application); application.CreateForm(TFormClass(FindClass(TForm(NomeForm).Name)),TForm(NomeForm)); TForm(NomeForm).ShowModal; finally TForm(NomeForm).Release; end;end;//adaptado de: http://imasters.com.br/artigo/3832/delphi/resumindo_programacao///abaixo a procedure original:Procedure CriaForm (NomeForm: TFormClass); Begin Try TForm (ClassForm) := ClassForm.Create(self); TForm (ClassForm).ShowModal; Finally FreeAndNil(ClassForm); End; // Try end; // CriaForm
Alguma idéia?
Carregando comentários...