Manter somente uma instância do form aberta na aplicação

06/08/2004

Fala galera,
Eu estou desenvolvendo a minha aplicação em MDI e não gostaria de que os meus formulários fossem modais. Eu queria saber se alguem tem alguma sugestão para que somente uma instância de determinado formulãrio seja criada dentro da aplicação?

Obrigado.


Wart

Respostas

06/08/2004

Bon Jovi

Eu por exemplo faço assim:
function TfrmPrincipal.JanelaAberta(NomeClasse: String): boolean;
var
  i: integer;
begin
  Result := False;
  for i := 0 to Self.MDIChildCount - 1 do
  begin
    if Self.MDIChildren[i&93;.ClassName = NomeClasse then
    begin
      Result := Self.MDIChildren&91;i&93;.Visible;
      if Result then
        Self.MDIChildren&91;i&93;.BringToFront;
      Break;
    end;
  end;
end;

procedure TfrmPrincipal.mnuCadastroUsuarioClick(Sender: TObject);
begin
  if not JanelaAberta(TfrmCadastroUsuario.ClassName) then
    TfrmCadastroUsuario.Create(Self);
end;



Responder Citar

07/08/2004

Wart

AE [b:e05194f9b6]Bon Jovi[/b:e05194f9b6], brigadão de novo hem cara! :D


Responder Citar