Criar Form sem declarar o mesmo na uses

Delphi

02/02/2005

Criei um componente edit com um Botão que ao ser clicado abre uma janela de pesquisa, nesta janela tenho opções para filtrar a pesquisa e um botão novo, gostaria de que quando eu clicasse no botão novo abrisse a janela de cadastro, exemplo se a pesquisa for de clientes abrira a janela de cadastro de clientes, se for de fornecedores abrira a janela de cadastro de fornecedores, estou passando o nome do form como parametro para criação do mesmo, só que não posso adicionar no uses da unit do componente o nome dos forms que serão cadastrados, pois este componente está sendo utilizado em dois sistemas diferentes e não possuem os mesmos forms.


Agradeço desde já.

Steve Narancic


Steve_narancic

Steve_narancic

Curtidas 0

Respostas

Paulo_amorim

Paulo_amorim

02/02/2005

Olá

Além do form que vc quer abrir, passe como parâmetro também a ComponentClass (TForm1, por exemplo) . Assim, vc faz:

supondo que seus parâmetros sejam Sender: TForm e TSender: TCOmponentClass, faça

Application.CreateForm(TSender, Sender);


Espero que ajude
Até+


GOSTEI 0
Steve_narancic

Steve_narancic

02/02/2005

Da dando o seguinte erro Class not found


GOSTEI 0
Beppe

Beppe

02/02/2005

Adicione uma propriedade pública no seu componente.

TFormClass = class of TForm;

TLancadorCadastro = class(...)
private
  FFormClass: TFormClass;
...
public
  FormClass: TFormClass read FFormClass write FFormClass;
...
end;


O código do clique no botão seria:
with FFormClass.Create(Application) do
try
  ShowModal;
finally
  Free;
end;


Nas telas em que vc tem este componente, adicione a linha:
LancadorCadastro1.FormClass := TClientesForm;
ou
LancadorCadastro1.FormClass := TFornecedoresForm;
ou
...


GOSTEI 0
POSTAR