Fórum rotina genérica para criação de Forms em tpo. de execução #231992
13/05/2004
0
Por favor, vendo os comentarios abaixo, me ajudem (quem souber e quiser) a montar uma rotina genérica e publica para criação dinâmica de Forms...
neste mesmo contexto, se der certpo vou criar uma generica para liberar um form...
VEJA ABAIXO :
A rotina deve ser chamada do Form principal (ou outro) apenas fazendo-se referencia:
UUtil.CriaForm(nome_do_formulario);
mas
não consigo compilar porque o tipo definido para o parametro não e aceito.
unit UUtil;
interface
//declarei aqui o cabeçalho da procedure mas não sei se é certo !???
procedure CriaForm(form1: TForm);
implementation
// procedure para criação dos forms recebendo por parâmetro onome do form...
procedure CriaForm(form1: TForm);
Begin
//testa se o Form existe...
if form1 = nil then
begin
try
Application.CreateForm(Tform1, form1);
form1.showModal;
finally
form1.Release;
//não sei se o nil libera a memoria ...ou uso o destroy??
form1 := nil;
end;
end;
End;
end.
Rcastro
Curtir tópico
+ 0Posts
13/05/2004
Fer_nanda
http://delphiforum.icft.com.br/forum/viewtopic.php?t=43084&highlight=criar+form
Gostei + 0
13/05/2004
Cabelo
Na seção uses da UNIT UUtils, está declarado a unit FORMS, se não estiver coloque e compile e vê se dá certo, no caso de testar o form, use assim
if not assigned(form1) then
begin
try
form1 := TForm.Create(application);
form1.showmodal;
end
else
begin
messagedlg(´Este form já existe!´, mterror, [mbOk], 0);
end;
finally
form1.Release;
espero ter ajudado, qualquer outra dúvida me mande um e-mail para cabelo.uni@uol.com.br
//quando vc dá um release vc já libeoru a memória..
Gostei + 0
13/05/2004
Rômulo Barros
Segue:
[size=18:592e472dc5]OBS: Não esqueça de mandar usar a biblioteca Clases [color=red:592e472dc5](Uses Classes);[/color:592e472dc5][/size:592e472dc5]
procedure TUnitFuncoes.ChamarTela(parForm: Tform; parInstance: TComponentClass; parMsg: String); begin Application.CreateForm(parInstance,parForm); parForm.Caption := parMsg; Try parForm.ShowModal; Finally parForm.Release; parForm := Nil; End; end;
Exemplo: (Vamos supor que temos um formulário chamado FormCadCliente), então:
ChamarTela(FormCadCliente,TFormCadCliente);
Gostei + 0
13/05/2004
Rcastro
O exemplo apenas complementa a contribuição legal dos colegas deforum...
grata.
procedure TFrmDM.CriaFormulario(TFormulario: TFormClass;
Formulario: TForm);
begin
Try
Application.CreateForm(TFormulario, Formulario);
Formulario.ShowModal;
Finally
Formulario.Free;
End
end;
Gostei + 0
13/05/2004
Rômulo Barros
Engraçado !! Sobe
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)