Alternar entre Form1 e Form2? ambos em Modal.
Form1 ativo em ShowModal, então um botão chama o Form2.ShowModal. Porém no Form2 a outro botão que por sua vez chama o Form1.ShowModal.
Um form está chamando o outro perfeitamente, porém quando o form já está em modal ao chamalo ele aparece sobre o outro forma, porém está sem foco, nada funciona nele.
Não sei se fui bem claro, mas basicamente estou precisando fazer um form chamar o outro mesmo que o outro já esteja visivel.
Ambos os Forms usando fsNormal.
Um form está chamando o outro perfeitamente, porém quando o form já está em modal ao chamalo ele aparece sobre o outro forma, porém está sem foco, nada funciona nele.
Não sei se fui bem claro, mas basicamente estou precisando fazer um form chamar o outro mesmo que o outro já esteja visivel.
Ambos os Forms usando fsNormal.
Weber
Curtidas 0
Respostas
Massuda
16/11/2006
Só pode haver um form ativo sendo exibido com ShowModal. Você pode ter vários forms exibidos com ShowModal, mas somente um deles pode estar ativo.
Se quiser ter vários forms ativos, use Show, mas aí todos os forms do programa que estiverem abertos estarão ativos, você tem que gerenciar quem deve ou não ficar ativo.
Se quiser ter vários forms ativos, use Show, mas aí todos os forms do programa que estiverem abertos estarão ativos, você tem que gerenciar quem deve ou não ficar ativo.
GOSTEI 0
Weber
16/11/2006
Meu problema está sendo justamente este, definir quem realmente deve estar ativo para o usuário.
veja parte do código:
Código no Form de nome FrmMovConsulta
Código no Form de nome FrmMovAgenda
As rotinas acima visualmente funcionam, porém, mesmo quando o form está sobre o topo ele não tem foco, tipo assim, o click do mouse não funciona, teclas não funcionam e tal.
veja parte do código:
Código no Form de nome FrmMovConsulta
if FrmMovAgenda = nil then begin Application.CreateForm(TFrmMovAgenda, FrmMovAgenda); FrmMovAgenda.ShowModal; FreeAndNil(FrmMovAgenda); end else begin FrmMovAgenda.BringToFront; SetActiveWindow(FrmMovAgenda.Handle); FrmMovAgenda.Focused; end;
Código no Form de nome FrmMovAgenda
if FrmMovConsulta = nil then begin Application.CreateForm(TFrmMovConsulta,FrmMovConsulta); FrmMovConsulta.ShowModal; FreeAndNil(FrmMovConsulta); end else begin FrmMovConsulta.BringToFront; SetActiveWindow(FrmMovConsulta.Handle); FrmMovConsulta.Focused; end;
As rotinas acima visualmente funcionam, porém, mesmo quando o form está sobre o topo ele não tem foco, tipo assim, o click do mouse não funciona, teclas não funcionam e tal.
GOSTEI 0
Massuda
16/11/2006
O que você pretende fazer parece com o form/janela que aparece quando você quer localizar texto no navegador (Ctrl+F se estiver usando IE)?
Se for, seu código não funciona por causa do ShowModal. Experimente usar Show.
Se for, seu código não funciona por causa do ShowModal. Experimente usar Show.
GOSTEI 0