Há como fazer função para abrir chamar e fechar um form
Bom dia amigos, fazemos muito em nossos sistemas o trio:
Existe como fazer uma função tipo:
Depois para abrir o form:
Att
Mario
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
Curtidas 0
Respostas
Paullsoftware
10/04/2006
Eu uso essa:
:wink:
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
10/04/2006
Olá Paulo, a rotina abriu o form, mas depois dele aberto ocorreu o seguinte erro:
E chamando-o pelo modo normal, não ocorre o referido erro.
após declarar a function, chamei-a da seguinte forma:
No aguardo
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
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
10/04/2006
Obrigado Paulo, funcionou perfeitamente.
Mario
Mario
GOSTEI 0
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);
[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
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
De qualquer forma, obrigado a ajuda de todos.
Mario
GOSTEI 0
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
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