Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Saber se o Form atual é show ou showmodal


LucAlucard

Pergunta

8 respostass a esta questão

Posts Recomendados

  • 0

Por favor o mais rápido possível! Vlw

sugiro a voce ser mais humilde, o forum não é help desk e ninguém é obrigado a lhe responder porque voce esta com pressa.

procure no help do delphi sobre

ShowModal method (TCustomForm)

e voce vai encontrar a resposta.

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

Ok... Desculpa Jhonas.. Reconheço que minhas palavras foram um tanto "arrogantes..." Por favor me desculpa... É o desespero de tentar conseguir uma solução logo quando o chefe fica na sua orelha o tempo todo.. de qualquer forma pesso desculpas.... se quiser pode deletar o post.. ou o tópico...

Vlw pela força de qualquer forma...

Link para o comentário
Compartilhar em outros sites

  • 0

Desculpas aceitas ...

quanto a sua dúvida:

Preciso saber se a Form atual é show ou showModal.

function ShowModal: Integer; virtual;

Description

Use ShowModal to show a form as a modal form. When the form is shown in a modal state, the application can’t continue to run until the form is closed.

To close a modal form, set its ModalResult property to a nonzero value.

ShowModal returns value to which the ModalResult property is set when it closes the form.

ShowModal retorna um valor para a propriedade ModalResult quando o form é fechado

exemplo: showmessage(ModalResult);

se o form foi aberto com Show o resultado será 0 .. e se foi aberto com ShowModal o resultado será > 0

outra maneira: é que o form aberto com show permite a perca do foco para outro form sem a necessidade de fecha-lo , e o form aberto com showmodal não deixa o foco sair do form enquanto ele não for fechado

abraço

Link para o comentário
Compartilhar em outros sites

  • 0
se o form foi aberto com Show o resultado será 0 .. e se foi aberto com ShowModal o resultado será > 0

Então... é que eu to prencisando fazer essa verificação do form ativo.. eu tava fazendo uns testes com o ModalResut só que eu tenho q jogar um valor nele primeiro. Pelo menos foi assim no teste que eu fiz.. mandei mostrar o modal result com um monte de show e showmodal alternando entre eles.. E sempre o resultado dava 0...

Brigadão pela dica.. eu vi um tal de modal started e modallevel.. mas tenho q aprender a usar certinho isso...

Link para o comentário
Compartilhar em outros sites

  • 0
mandei mostrar o modal result com um monte de show e showmodal alternando entre eles.. E sempre o resultado dava 0...

ShowModal retorna um valor para a propriedade ModalResult quando o form é fechado

outra solução e voce no Menu usar um controle tipo:

var TipoForm : integer;

procedure TFMenu.Funcionrios1Click(Sender: TObject);
begin
  try
     if FCadFunc = Nil then
        FCadFunc := TFCadFunc.Create(self);
  except
      ShowMessage('Erro na criação do formulário !!');
      exit;
  end;

  TipoForm  := 0;  
  FCadFunc.show;

end;

procedure TFMenu.Seguradoras1Click(Sender: TObject);
begin
  try
     if FCadSeg = Nil then
        FCadSeg := TFCadSeg.Create(self);
  except
      ShowMessage('Erro na criação do formulário !!');
      exit;
  end;

  TipoForm  := 1;  
  FCadSeg.showmodal;
end;

OBS: Voce testa a variavel TipoForm ... se for 0 é Show ... se for 1 é ShowModal

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

É uma boa ídeia mesmo.. eu tinha pensado em uma mais ou menos assim também... mas.. e não tem nem uma propriedade com essa função porém na hora da criação e não quando fechamos?

E vlw pela ajuda Jhonas... me desculpa pelo que escrevi lá em cima... por favor..

Link para o comentário
Compartilhar em outros sites

  • 0

A rotina a baixo funciona para Windows 7... ainda não conseguí fazer funcionar no Windows XP... Bom se você conseguir por favor compartilhe conosco do fórum pliss =D

...

Encontrei uma solução gente...

crie o seguinte junto com as procedures do Type:

procedure ModalBegin(Sender:TObject); // Aqui você pode dar o nome que quiser.. eu escolhí [b]ModalBegin[/b] e...
  procedure ModalExit(Sender:TObject);  // eu escolhí [b]ModalExit[/b]
após isso crie as procedures...
procedure TFrm1.ModalBegin(Sender: TObject);
  begin
  vModal := True;
  end;
  
  procedure TFrm1.ModalExit(Sender: TObject);
  begin
  vModal := False;
  end;
Depois no coloque no formulário no OnCreate e no OnClose: e Crie uma variavel Privada do tipo Boolean chamada vModal
public
      vModal : Boolean;
      { Public declarations }
procedure TFrm1.FormCreate(Sender: TObject);
  begin
  Application.OnModalBegin := ModalBegin;
  end;
  
  procedure TFrm1.FormClose(Sender: TObject; var Action: TCloseAction);
  begin
  Application.OnModalEnd := ModalExit;
  end;

Como usar? Se a variavel vModal for = True então ele é ShowModal, caso contrário ele é Show.

Um forte abraço gente, muito obrigado pela ajuda de todos! ^^

Editado por LucAlucard
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...