Criar Form sem declarar o mesmo na uses
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
Agradeço desde já.
Steve Narancic
Steve_narancic
Curtidas 0
Respostas
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
Espero que ajude
Até+
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
02/02/2005
Da dando o seguinte erro Class not found
GOSTEI 0
Beppe
02/02/2005
Adicione uma propriedade pública no seu componente.
O código do clique no botão seria:
Nas telas em que vc tem este componente, adicione a linha:
LancadorCadastro1.FormClass := TClientesForm;
ou
LancadorCadastro1.FormClass := TFornecedoresForm;
ou
...
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