Alternar entre Form1 e Form2? ambos em Modal.

Delphi

16/11/2006

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.


Weber

Weber

Curtidas 0

Respostas

Massuda

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.


GOSTEI 0
Weber

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
    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

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.


GOSTEI 0
POSTAR