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

Formulários Que Não Ficam Visíveis!


Bicicleta

Pergunta

Salve salve...

Galera, to com um problema estranho...

Uso o WinXP aqui no meu comp, nele que tenho o delphi e faço as aplicações... Aqui funciona tudo certinho!!!

Mas peguei uma outra máquina e instalei o Win98 para testar, e os formulários que são abertos pelo Formulário Principal ficam atrás do que o chamou...

Não ocorre com todos, mais com quase todos... Saca só:

Abro o formulário assim:

Application.CreateForm(TfrmEnviarResultados, frmEnviarResultados);

frmEnviarResultados.ShowModal;

frmEnviarResultados.Release;

Faço isso em um formulário que se chama: frmPrincipal...

No comp com o WinXP funciona tudo certo, no comp que está com o Win98 o frmEnviarResultados fica atrás do frmPrincipal, notei isso porque eu restaurei o form e deixei o menor possível, dai chamei a abertura do formulário pela tecla de atalho, e ele fica atrás do form que o chamou, mas o foco fica nele...

Se o frmPrincipal estiver maximizado, o frmEnviarResultados não aparece, e o frmPrincipal fica sem o foco, mais fica na frente do frmEnviarResultados, se eu apertar ALT+F4 por exemplo, o form frmEnviarResultados se fecha e o foco volta para o frmPrincipal (mais nem chego a ver o frmEnviarResultados)

Alguém sabe o que pode estar ocorrendo???

PS.: Somente o primeiro formulário está na caixa de "Auto-create forms"...

Valeu!!!

Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0

Putz kara, agora outro problema referente...

Adicionei um outro processo em um form, qd esse processo termina ou acontece algum erro, mando mostrar uma mensagem (MessageDlg), só que essa mensagem aparece atrás desse formulário...

Resumindo, nem colocando o FormStyle como fsStayOnTop ou fazendo desse modo que você falou funciona!!!

Será que tem outro jeito??? porque será que acontece isso só em alguns formulários????

Valeu!!!

Link para o comentário
Compartilhar em outros sites

  • 0

Putz, denovo, parece até flooder, hehehehe

Mas consegui resolver assim, no evento OnCreate do formulário chamado, coloco isso:

frmPrincipal.SendToBack;

Agora acho que resolveu. Valeu e desculpa, mais é que não sabia dessa parada de SendToBack e BringToFront, procurando na net vi isso, como com BringToFront não funcionou tentei com SendToBack e funcionou certinho!!!

Valeu!!!

Link para o comentário
Compartilhar em outros sites

  • 0

Bicicleta, acredito que você esteja apenas contornando um problema e gerando outro.

Setando a propriedade FormStyle como fsStayOnTop você coloca seu form a frente de qualquer outro, mesmo que ele não tenha o foco, assim, se você iniciar ou tiver outro aplicativo rodando neste computador, provavelmente a tela de seu programa ficará sobre ele.

Minha sugestão é que você tente vericar se há alguma propriedade que você possa ter alterado no form e que esteja gerando este problema. Crie um novo projeto com dois forms, coloque no primeiro form um botão que chama o segundo form com showmodal, simulando sua aplicação, porém sem mexer nas propriedades dos forms e então teste no windows 98. Assim, se não houver o mesmo resultado, reveja seu projeto original, procure por algum detalhe comparando os dois projetos.

Link para o comentário
Compartilhar em outros sites

  • 0

Então mano, eu voltei a propriedade FormStyle para fsNormal e no evento OnCreate de cada formulário que é aberto eu coloco:

frmPrincipal.SendToBack;

Assim funcionou perfeitamente e não precisei fazer a gambiarra do fsStayOnTop....

Mais valeu Micheu pela atenção, realmente não tinha pensado nesse problema do form ficar na frente de qualquer outra aplicação...

Mais sinceramente, gostaria muito de saber porque isso acontece em alguns formulários e em outros não... Sempre abro os formulários da mesma maneira:

try
  Application.CreateForm(TForm1, Form1);
  Form1.ShowModal;
finally
  Form1.Free;
end;

Alguns ficam certo, alguns ficam atrás, nunca vi isso!!! Revi todas as propriedades dos formulários e todos estão iguais!!! :-S

Link para o comentário
Compartilhar em outros sites

  • 0

Bom, como minhas aplicações rodam em Win98, W2K e XP, tente fazer um teste criando as janelas da forma como eu faço:

begin
  ...
  Form1 := TForm1.Create(Self);
  try
    Form1.ShowModal;
  finally
    Form1.Free;
  end;
end;

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,4k
×
×
  • Criar Novo...