Verificar se Form já está aberto
Pessoal...
Eu estou encontrando dificuldades em verificar se o meu form já está aberto. Eu tentei as alternativas que encontrei aqui na comunidade mas não está dando certo.
Em primeiro lugar, quero tentar explicar o que tem que acontecer:
- Eu chamo um form aonde eu executo algumas tarefas (até aí tudo normal). Nesse formulário, eu chamo uma outra tela de parâmetros caso o usuário não aceite o que o programa está mostrando.
- Nessa outra tela, eu aplico as novas configurações e chamo uma terceira tela.
- Na terceira tela eu executo as novas tarefas e outra vez pergunto se o usuário está satisfeito com o resultado apresentado. Caso ele não esteja, eu tenho que chamar a tela anterior novamente para que ele mais uma vez mude as configurações e a terceira tela seja novamente chamada.
Acontece que na hora de eu fechar a tela, eu tenho várias telas abertas e não estou conseguindo fechá-las.
Como eu resolvo esse problema?
Eu estou encontrando dificuldades em verificar se o meu form já está aberto. Eu tentei as alternativas que encontrei aqui na comunidade mas não está dando certo.
Em primeiro lugar, quero tentar explicar o que tem que acontecer:
- Eu chamo um form aonde eu executo algumas tarefas (até aí tudo normal). Nesse formulário, eu chamo uma outra tela de parâmetros caso o usuário não aceite o que o programa está mostrando.
- Nessa outra tela, eu aplico as novas configurações e chamo uma terceira tela.
- Na terceira tela eu executo as novas tarefas e outra vez pergunto se o usuário está satisfeito com o resultado apresentado. Caso ele não esteja, eu tenho que chamar a tela anterior novamente para que ele mais uma vez mude as configurações e a terceira tela seja novamente chamada.
Acontece que na hora de eu fechar a tela, eu tenho várias telas abertas e não estou conseguindo fechá-las.
Como eu resolvo esse problema?
Marcos.gandin
Curtidas 0
Respostas
Paullsoftware
23/11/2007
creio que essa rotinha vai te ajudar, pois, uso ela em minha aplicações...
para executar...
espero ter ajudado!! :wink:
function ChecaForm(aForm: Tform): Boolean; var I:Integer; begin ChecaForm := false; for I := 0 to Screen.FormCount -1 do if Screen.Forms[i] = aForm then begin ChecaForm := true; Break; end; end; (* ChecaForm *)
if ChecaForm(FrmUsuarios) then begin FrmUsuarios.BringToFront; FrmUsuarios.Focused; end else begin FrmUsuarios := TFrmUsuarios.Create(nil); FrmUsuarios.BringToFront; FrmUsuarios.Focused; end;
espero ter ajudado!! :wink:
GOSTEI 0
Marcos.gandin
23/11/2007
Mas eu não preciso dar um ShowModal no meu form?
E como tem que ser os meus forms? MDIChild?
E como tem que ser os meus forms? MDIChild?
GOSTEI 0
Paullsoftware
23/11/2007
Mas eu não preciso dar um ShowModal no meu form?
Não!!!!
E como tem que ser os meus forms? MDIChild?
Isso, devem ser MDIChild!!!
espero ter ajudado!!! :wink:
GOSTEI 0
Marcos.gandin
23/11/2007
Olha só...
Não sei o que está acontecendo.
Eu fiz o que você sugeriu, mas não está dando certo.
Quando eu vou chamar o meu form, está dando a seguinte mensagem:
[b:946c4fd1c9]Cannot create form. No MDI forms are currently active.[/b:946c4fd1c9]
O que eu gostaria que me ajudasse é que me dissesse como eu chamo um form MDIChild e como eu fecho ele também.
É que eu vou poder ter ele várias vezes aberto, então, quando eu fechar, como devo proceder?
Não sei o que está acontecendo.
Eu fiz o que você sugeriu, mas não está dando certo.
Quando eu vou chamar o meu form, está dando a seguinte mensagem:
[b:946c4fd1c9]Cannot create form. No MDI forms are currently active.[/b:946c4fd1c9]
O que eu gostaria que me ajudasse é que me dissesse como eu chamo um form MDIChild e como eu fecho ele também.
É que eu vou poder ter ele várias vezes aberto, então, quando eu fechar, como devo proceder?
GOSTEI 0