Fórum Abrir o Mesmo Form Varias Vezes #203566
30/12/2003
0
Eu tenho um form frmMsg ( exemplo ).
E eu preciso abri-lo varias vezes ao mesmo tempo e cada um com uma mensagem diferente, so que ao fechar um eu tenho problema com os outros, pois o mesmo ja foi fechado na memoria, a rotina para abertura é esta.
frmMsg := TfrmMsg.Create(nil);
frmMsg.wMsg := form1.ADOThrMSG.AsString;
frmMsg.Show;
e para fechamento é esta.
frmMsg.Update;
frmMsg.hide;
frmMsg.free;
Action := caFree;
Esta aplicação seria tipo um post-it, onde tenho uma tabela de compromissos e a thread fica varendo a tabela e quando chega um compromisso ela mostra a mensagem na tela, entao este form podera aparecer varias vezes ao mesmo tempo e ser fechado sem ordem prevista.
Tem alguma maneira para resolver isto ou posso atribuir um nome aleatoriamente ao form, na criacao do mesmo.
Icheuk
Curtir tópico
+ 0Posts
30/12/2003
Luizfernando777
tenta fazer o seguinte:
Na criação continue usando o mesmo procedimento
qdo vc for fechar
no evendo onClose do frmMsg
coloque
frmMsg := nil;
action := caFree;
só isso.
Errado
frmMsg.Update; // não precisa
frmMsg.hide; // não precisa
frmMsg.free; // não precisa
Action := caFree
Gostei + 0
30/12/2003
Emiyasaki
Criaria uma procedure (ou método, de preferência), da seguinte forma:
procedure TMainForm.MostraMensagem(Msg: string); var Frm: TfrmMsg; begin Frm := TfrmMsg.Create(Self); Frm.wMsg := Msg; Frm.Show; end;
No fechamento, em TfrmMsg, no evento OnClose:
procedure TfrmMsg.FormClose(Sender: TObject; var Action: TCloseAction); begin Self.Update; Action := caFree; end;
Gostei + 0
30/12/2003
Icheuk
Obrigado a todos.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)