GARANTIR DESCONTO

Fórum Escondendo formulário #338707

15/03/2007

0

Talvez seja uma dúvida grotesca, mas não estou conseguindo.
Estou criando um form1 (create) dentro de outro form2.
Num botton do form2 abro o form1 (show).
Após usar o form1 como esconde-lo e deixar ativo o form2? Não quero fechá-lo não, quero apenas escondê-lo.
Grato.


Crpavao

Crpavao

Responder

Posts

15/03/2007

Marco Salles

para escondelo , acho que poderia usar o Hide ou a propriedade Visible

form1.hide;


para cria-lo
if form1 = nil Then form1:=Tform1.Create(form2); form1.Show


e no onclose do form1

Action:=Cafree; Form1:=nil;



Acho que dá


Responder

Gostei + 0

15/03/2007

Crpavao

Valeu a sua força, mas isto tudo já tentei.
Se dou form1.hide, quando quero mostrá-lo novamente uso form1.show, aí dá erro.


Responder

Gostei + 0

15/03/2007

Marco Salles

Valeu a sua força, mas isto tudo já tentei. Se dou form1.hide, quando quero mostrá-lo novamente uso form1.show, aí dá erro.


[b:21f66556d8]Aqui funcionou..[/b:21f66556d8]

:arrow: Tente Visibel :=False

Se persitir o erro , seria interresante ver seu codigo de criação desse formulários


Responder

Gostei + 0

15/03/2007

Crpavao

Caro amigo,
Obrigado pela ajuda.
É o seguinte:
Crio o Form1 (form2.Create).
Num botton dou form1.show;
No Form1, qdo ´fecho´, faço form1.hide (ou form1.visible := False)
Até ai tudo bem.
Qdo clico novamente no botton do form2 dando um form1.show aí aparece a merda do erro:
Cannot Change Visible in OnShow or onHide.


Responder

Gostei + 0

15/03/2007

Marco Salles

Caro amigo, Obrigado pela ajuda. É o seguinte:
Crio o Form1 (form2.Create). 
Num botton dou form1.show; No Form1, qdo ´fecho´, faço form1.hide (ou form1.visible := False) Até ai tudo bem. Qdo clico novamente no botton do form2 dando um form1.show aí aparece a merda do erro: Cannot Change Visible in OnShow or onHide.


no

crie assim:

if Form1 = Nil then Form1:=Tfor1.create(form2); Form1.show;


[b]P:S não tem Begin end o Form1.Show esta swozinho mesmo

Nao esqueça no Form Close do Form1 digite:

Action:=Cafree; Form1:=nil



Responder

Gostei + 0

15/03/2007

Crpavao

Sei que assim funciona, mas não quero fechar o form1, só quero esconde-lo.
Se der Action := Cafree, então esterei fechando o form1, o que não quero.


Responder

Gostei + 0

15/03/2007

Marco Salles

Sei que assim funciona, mas não quero fechar o form1, só quero esconde-lo. Se der Action := Cafree, então esterei fechando o form1, o que não quero.


No amigo... Não disse patra voce fechar o Formulário

O que eu disse é que [u:71bfdbf70f][b:71bfdbf70f]quando[/b:71bfdbf70f][/u:71bfdbf70f] voce for fechar o Formulário colocar estas
instruçoes no Evento Onclose

Mas para esconder voce deve usar o Hide ou o Visible

Para cria-los:
if Form1 = Nil then Form1:=Tfor1.create(form2); Form1.show;

para Esconde-los
Form1.hide;

Quando for Fecha-los:
Action:=Cafree; Form1:=nil


Coloque assim ... Não é possível que dê erros...


Responder

Gostei + 0

15/03/2007

Emerson Nascimento

pela mensagem exibida, você está tentando exibir/esconder a partir dos métodos OnShow ou OnHide, o que não é permitido.


Responder

Gostei + 0

16/03/2007

Crpavao

Senhores, agradeço e muito a força de vcs.
Mas a solução que encontrei foi a seguinte:

Bom, qual era o meu objetivo:
Qdo abrir o form2 criar um form1 e mante-lo escondido até qdo for utiliza-lo. Depois de utiliza-lo fecha-lo, mas sem tirá-lo da memoria. Pode ser que precise abri-lo novamente, através do form2.

No ONCREATE do form2
Form1 := TForm1.Create(Form2);
Form1.Hide;


Botton do from2
Form1.Show;

Saida do Form1
Close;

Observação: Qdo eu fechar o form2 (usando Action := CaFree) o Form1 também é fechado automaticamente.

É isto.
Obrigado, turma, mais uma vez.


Responder

Gostei + 0

17/03/2007

Marco Salles

todos caminho levama Roma


Responder

Gostei + 0

17/03/2007

Crpavao

Mas o Papa gosta mais de um....


Responder

Gostei + 0

17/03/2007

Marco Salles

todos caminho levama Roma


Mas o Papa gosta mais de um....


Deu para perceber.


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar