Selecao DevMedia QUERO SER PRIME

Fórum Verificar se Form já está aberto #349502

23/11/2007

0

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?


Marcos.gandin

Marcos.gandin

Responder

Posts

23/11/2007

Paullsoftware

creio que essa rotinha vai te ajudar, pois, uso ela em minha aplicações...

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 *)
para executar...
 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:


Responder

Gostei + 0

23/11/2007

Marcos.gandin

Mas eu não preciso dar um ShowModal no meu form?

E como tem que ser os meus forms? MDIChild?


Responder

Gostei + 0

23/11/2007

Paullsoftware

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:


Responder

Gostei + 0

26/11/2007

Marcos.gandin

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?


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar