Como abrir uma única vez um formulário MDIChild ou mostra-lo se ele estiver oculto? – Show Delphi

DICAS

Visite a biblioteca de dicas da comunidade.

Saiba mais

ARTIGOS

Abordagens detalhadas sobre assuntos diversos.

Saiba mais

INICIANTES

Aprenda a programar de um modo simples e fácil.

Saiba mais

DOWNLOADS

Acesse os materiais exclusivos aos membros.

Saiba mais
voltar

PARA QUEM GOSTA DE DELPHI

Como abrir uma única vez um formulário MDIChild ou mostra-lo se ele estiver oculto?

 

Desta forma você vai abrir somente uma vez o form, não importando o número
de vezes em que o usuário clique no botão, por exemplo.
Se a janela já esta aberta, o procedimento seta o foco para a mesma.

Segue o código Fonte:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
procedure ShowChild(MainForm : TForm; InstanceClass: TFormClass; var Reference);
var
  Instance: TForm;
begin
  Screen.Cursor:= crHourglass;
  LockWindowUpdate(MainForm.Handle);
  if not IsChildFormExist(InstanceClass) then
    try
      Instance:= TForm(InstanceClass.NewInstance);
      TForm(Reference):= Instance;
      try
        Instance.Create(MainForm);
        if (Instance as TForm).FormStyle = fsNormal then
        begin
          (Instance as TForm).FormStyle := fsMdiChild;
          (Instance as TForm).Visible := True;
        end;
      except
        TForm(Reference):= nil;
        Instance.Free;
        raise;
      end;
    finally
      Screen.Cursor:= crDefault;
    end
  else
    with TForm(Reference) do begin
      if WindowState = wsMinimized then WindowState:= wsNormal;
      BringToFront;
      Screen.Cursor:= crDefault;
      SetFocus;
    end;
 
  LockWindowUpdate(0);
end;
1
2
3
4
procedure TfrmPrincipal.btnServicoClick(Sender: TObject);
begin
  ShowChild(Self, TFrmCLiente, FrmCLiente);
end;

Esta dica faz uso da dica abaixo:
http://showdelphi.com.br/dica-como-identificar-se-um-formulario-do-tipo-mdichild-ja-esta-criado-delphi/

Facebook Comments

Posts Relacionados

  • Administrador
  • 1.028 views
  • 0 comentários
  • 16 de abril de 2015

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Ir ao topo

© 2016 Infus Soluções em Tecnologia - Todos os Direitos Reservados