Há como fazer função para abrir chamar e fechar um form

Delphi

10/04/2006

Bom dia amigos, fazemos muito em nossos sistemas o trio:

Application.CreateForm(TfCadCli, fCadCli);
fCadCli.ShowModal;
fCadCli.Release;


Existe como fazer uma função tipo:

function AbreForm(nomeform: string);
begin
Application.CreateForm(T"nomeform", "nomeform");
"nomeform".ShowModal;
"nomeform".Release;    
end;


Depois para abrir o form:

AbreForm(´Cadastro_Clientes´)


Att
Mario


Aldus

Aldus

Curtidas 0

Respostas

Paullsoftware

Paullsoftware

10/04/2006

Eu uso essa:

procedure ChamaForm(fClass:TFormClass; Form:TForm);
begin
 try
  Application.CreateForm(fClass,Form);
  Form.ShowModal;
  Finally
  Form.Release;
  Form:=nil;
 end;
end;

:wink:


GOSTEI 0
Aldus

Aldus

10/04/2006

Olá Paulo, a rotina abriu o form, mas depois dele aberto ocorreu o seguinte erro:

Acess violation at adress 999999 


E chamando-o pelo modo normal, não ocorre o referido erro.
após declarar a function, chamei-a da seguinte forma:

 AbreForm(TfCadPro,fCadPro);


No aguardo


GOSTEI 0
Paullsoftware

Paullsoftware

10/04/2006

para usar usar a função acima os forms devem estar na Lista de Avaliable Forms em [b:1b80f43609]Project >> Options >> forms[/b:1b80f43609]...


GOSTEI 0
Aldus

Aldus

10/04/2006

Obrigado Paulo, funcionou perfeitamente.

Mario


GOSTEI 0
Ricardoif

Ricardoif

10/04/2006

criei essa rotina e funciona blz

[b:68491d4804]procedure [/b:68491d4804]fShowModal(TFormulario: TComponentClass; [b:68491d4804]var [/b:68491d4804]Formulario);
[b:68491d4804]begin[/b:68491d4804]
[b:68491d4804] try[/b:68491d4804]
Application.CreateForm(TFormulario, Formulario);
TForm(Formulario).ShowModal;
[b:68491d4804] finally[/b:68491d4804]
TForm(Formulario).Release;
FreeAndNil(TForm(formulario));
[b:68491d4804] end;
end;[/b:68491d4804]


fShowModal(TForm1,Form1);


GOSTEI 0
Aldus

Aldus

10/04/2006

Olá ricardo utilizei sua dica e funcionou melhor, pois não preciso carregar os forms ao iniciar o sistema.

De qualquer forma, obrigado a ajuda de todos.

Mario


GOSTEI 0
Mmoreira

Mmoreira

10/04/2006

Ola a todos!

Estou precisando fazer a mesma coisa, porem com forms do tipo MDI. E tem outra coisa nao posso permitir que o mesmo form seja aberto mais de uma vez e gostaria que esta ferificação ficasse na Procedure.
Alguem pode me ajudar?

valew


GOSTEI 0
POSTAR