chamar Form dinamicamente

Delphi

22/04/2009

Boa noite,

Pessoal to desenvolvendo uma aplicação que tem uma tela genérica e em determinado momento dessa tela tenho que chamar um Form por um determinado parametro ´String´ tem como fazer isso?


por exemplo:
parametro = ´FCliente´

teria que chamar ´FCliente´.showModal();


Lauro.balceiro

Lauro.balceiro

Curtidas 0

Respostas

Woinch

Woinch

22/04/2009

Que eu saiba isso eh impossível voce terá que realizar testes com a String para verificar qual formulário você vai criar para depois dar ShowModal nele.

Qualquer dúvida favor responder.
Obrigado!


GOSTEI 0
Marcosrocha

Marcosrocha

22/04/2009

O problema nem é saber qual formulário dar o ShowModal pois você pode dar um ´FindComponent´ para localizar um formulário instanciado na memória. A grande questão é a classe, até onde eu saiba e tentei fazer rapidamente para tentar responder a pergunta é encontrar a classe e instanciá-la.
procedure InstanciaFormDinamicamente(const NomeForm: String);
var
  MeuForm: TForm;
begin
  MeuForm := FindClasseDoForm(´T´+NomeForm).Create(Application);
  MeuForm.ShowModal;
  MeuForm.Free;
end;
Seria algo nesse sentido Woinch.


GOSTEI 0
Woinch

Woinch

22/04/2009

Se ele já possuir todos os forms criados ai sim ele pode dar um FindComponent como mencionado pelo Marcos ai fica mais facil. Mas isso não é aconselhável se for uma quantia muito grande de formulários que você irá manter criados.


GOSTEI 0
Woinch

Woinch

22/04/2009

Acabo de achar um artigo meio que sem querer que se enquadra perfeitamente a essa dúvida.

Segue:
http://delphi.about.com/library/weekly/aa080905a.htm

Espero ter ajudado.


GOSTEI 0
Marco Salles

Marco Salles

22/04/2009

O Padrão para criar Form dinamicamente pelo Nome se chama
Factory Method

Factory Method é um design pattern criacional catalogado pela famosa GoF (Gang of Four). A função deste modelo é ´criar uma instância de várias classes derivadas´. , que pode ser usada especificamente para
o caso de Forms

O Artigo apresentado deve usar de modo velado o Design Patterns

Aqui mesmo no Site se vc fizer uma pesquisa , vai encontrar algo a respeito. Eu mesmo ja participei de algo assim


GOSTEI 0
Lauro.balceiro

Lauro.balceiro

22/04/2009

Galera era isso mesmo que precisava muito obrigado.


GOSTEI 0
POSTAR