erro no comando application.createform
24/03/2003
0
try Fpessoa.show; except Application.Createform(TFpessoa,Fpessoa); end;
o programa compila certo, mas quando chega nesse comando da o seguinte erro [color=red:50ea4f9a48]project pss.exe raised exception class EAccessViolation with message Access violation at address 0993DAC6 in module VCL70.bpl[/color:50ea4f9a48], no delphi5 funcionava sem problema.
Anonymous
Posts
24/03/2003
Carnette
O amiguinho....Já vi um monte de maluquices dos ´programadores´..por aqui....mas, esta é nova...Acredito que voce quiz dizer com este comando algo assim:
Abra o FORM FPESSOA no MODAL...
xiii deu erro...
CRIA O FORM FPESSO no MODAL...
Sinceramente NÃO faz sentido este racicionio...Quem sabe voce coloca o comando Application.Createform(TFpessoa,Fpessoa) ANTES do abertura do form...Voce quer testar se o form está aberto ?? Não é assim que se faz....
Cara, esta tua linha para MEU modo de ver(posso estar errado) mas, ESTÁ TOTALMENTE ILÓGICA...
cCriaçõa de form em tempo de execução com TRY e Except, é DENTRO do TRY não do except...
24/03/2003
Anonymous
Abra o FORM FPESSOA no MODAL...
xiii deu erro...
CRIA O FORM FPESSO no MODAL...
Sinceramente NÃO faz sentido este racicionio...Quem sabe voce coloca o comando Application.Createform(TFpessoa,Fpessoa) ANTES do abertura do form...Voce quer testar se o form está aberto ?? Não é assim que se faz....
Cara, esta tua linha para MEU modo de ver(posso estar errado) mas, ESTÁ TOTALMENTE ILÓGICA...
cCriaçõa de form em tempo de execução com TRY e Except, é DENTRO do TRY não do except...
e codigo funciona da seguinte forma estou no form principal e quando pressiono um botão ele executa o comando try Fpessoa.show; except [color=red:69e94e1f90]Application.Createform(TFpessoa,Fpessoa); end; [/color:69e94e1f90]
e nesse comando ele abre o form Fpessoa exceto se ele já estiver aberto, entendeu?
24/03/2003
Okama
for I := 0 to Screen.FormCount-1 do
if Screen.Forms[i].Name = ´Form1´ then
Showmessage(´Formulário já está aberto!!!);
24/03/2003
Carnette
Obrigado Okama...me facilitou a explicação....
24/03/2003
Carlos Filho
Vc quer ECONOMIZAR MEMÓRIA CRIANDO FORMULÁRIOS APENAS QUANDO ELES FOREM REQUERIDOS...
Ótima atitude, pouca gente se preocupa com isso, parabéns. Você está seguindo bons parâmetros de programação...
Para que isso funcione corretamente você deve fazer assim:
begin if not Assigned(Form2) then Application.CreateForm(TForm2,Form2) else Form2.ShowModal; //Form2.Show, caso não queira bloquear o mouse fora de Form1 end;
Assigned(Form2) verifica se o formulário já foi criado, pois quando ele está criado, um ponteiro é colocado dentro da variável Form2, que é da classe TForm2!
Espero ter te ajudado