Continua o problema de exibir forms com Show; Por favor....

Delphi

29/09/2003

Preciso urgentemente saber com exibir um form usando show, parece ridículo, mas estou com dificuldades.
Sempre usei minhas janela com showmodal, e agora preciso usar show; só que uso os comandos assim,
Try
Screen.Cursor := crAppStart;
Application.CreateForm(TFrmAssistenciaMedica,FrmAssistenciaMedica);
FrmAssistenciaMedica.Show;
Finally
FrmAssistenciaMedica.Release;
FrmAssistenciaMedica := nil;
Screen.Cursor := crDefault;
end;
Se eu colocar show ao invés de showmodal, a tela só pisca como se o form fosse aparecer. Eu não sei se usando o comando show é preciso liberar o form de memória.
se eu colocar somente assim funciona:
Application.CreateForm(TFrmAssistenciaMedica,FrmAssistenciaMedica);
FrmAssistenciaMedica.Show;

Só que quando fecho este form que acabei de criar, a aplicação é encerrada, não tem nada no on-create, on-close, on-show, nem do principal nem do que está sendo criado, não sei mais o que fazer.
A sequencia é a seguinte, naquela opção de auto-create forms do project, eu coloco a unit
Login
Principal

A pessoa passa pelo login, o form principal é exibido com o comando show, e a tela de login é fechada, a partir daí, só consigo exibir forms com showmodal.
Atenciosamente, Rodrigo.


Jorgerodrigo

Jorgerodrigo

Curtidas 0

Respostas

Leanribas

Leanribas

29/09/2003

Existe uma difereça entre Show e ShowModal

por exemplo

Frm.ShowModal;
Frm.Free.

neste este comando espera o usuario fechar o form para executar o comando Free;


no caso do show, ele não espera o usuario fechar o form e continua
executando os comandos normalmente.

Se o comando for assim:

Frm.Show;
Frm.Release;

neste caso o form aparece e já desaparece.


falou.
Leandro


GOSTEI 0
Adilsond

Adilsond

29/09/2003

Qdo voce utiliza showmodall, o seu form é visualizado e o seu programa não executa as linhas abaixo até que voce feche o seu form. Mas com show é diferente, o seu form é visualizado, mas o programa executará o código que esta abaixo do show.


Screen.Cursor := crAppStart;
if not assigned(FrmAssistenciaMedica) then
FrmAssistenciaMedica := TFrmAssistenciaMedica.Create(Self);
FrmAssistenciaMedica.Show;
Screen.Cursor := crDefault;


GOSTEI 0
_nekinho_

_nekinho_

29/09/2003

Acho q a galera ja até explicou aê massa mas so pra matar o verme....

Cara é diferente ShowModal é como se fosse uma função, então ela fica esperando um retorno. Quando Você da somente um Show o codigo continua e você acaba destruindo o formulario antes d visualisar =/

Vai ter que inventar outra maneira aê de liberar ele! Falow Galerinha mala

Nelson Lima


GOSTEI 0
POSTAR