Forum > Portuguese
Ajuda com TPopUpMenu
meulinux:
Você usa halt; para sair do aplicativo?
Em um programa GUI, a boa programação diz para sair com close; ou application.terminate;
O halt é usado mais no .lpr antes de Application.Run;
Será que estou errado?
Tinha de postar aqui, mesmo não sendo o assunto tratado, pois a dica era para o autor do tópico. Se errei, desculpem.
nightrider:
Perguntas:
1. Se estiver com 2 ou + Form abertos Close resolve? Creio que nao.
2. Application.Terminate mata a execução no ato? Quando uso o Halt é com esta intencao
3. Pq somente antes do Application.Run?
Eu programo sozinho e resolvo os problemas do jeito que consigo. Tenho um monte de duvidas mas nao tenho pra quem perguntar ou nao quero ficar amolando as pessoas que sabem muito + que eu. Nao sei se me entendes. Tb lembro de ter feito perguntas que agora sei que eram bem simples neste forum e ninguem ter respondido.
Grato pelas dicas. Me responda as perguntas acima e paro de usar o halt.
[ ]
Eu agradeco a tua intervencao.
meulinux:
--- Quote ---1. Se estiver com 2 ou + Form abertos Close resolve? Creio que nao.
--- End quote ---
Sim, resolve, desde que no evento onClose do MainForm você faça a verificação se os demais forms estão abertos, se estão abertos feche-os.
--- Code: ---if Form1 <> nil then
Form1.Close;
if Form2 <> nil then
Form2.Close;
// Lembrar de colocar um "Form1:= Nil" após sair de um form
--- End code ---
--- Quote ---2. Application.Terminate mata a execução no ato? Quando uso o Halt é com esta intencao
--- End quote ---
Halt fecha a aplicação de forma anormal, não liberando a memória alocada pelos objetos, recursos consumidos, etc. O seu único parâmetro é o ExitCode retornado ao sistema operacional, e não tem relação com a quantidade de forms abertos.
Terminate fecha a aplicação, assegurando que tudo que foi alocado seja liberado. Em outras palavras, chama o método Free para todos os componentes, que chamarão Free para os componentes que são seus ´filhos´ (definidos através do parâmetro Owner no construtor). Também dispara uma mensagem para o Windows/Linux, para garantir que tudo seja destruído na ordem certa. Por essa razão Terminate pode demorar alguns segundos para fechar a aplicação, enquanto Halt é imediato.
Existe a propriedade Terminated, da classe TApplication, que pode ser usada para saber se a aplicação está em processo de shut down. Isso pode ser útil para não executar nenhum código quando a aplicação estiver sendo finalizada.
O método Close da classe TCustomForm chama Application.Terminate caso o formulário seja o MainForm da aplicação. Portanto, ambos têm o mesmo efeito nesse caso.
Portanto, na maioria dos casos, use Terminate ou Close, se o form for o principal.
--- Quote ---Grato pelas dicas. Me responda as perguntas acima e paro de usar o halt.
--- End quote ---
Ora, você para se quiser e não se eu responder, kkkkkkk
Sim, antes do Application.Run porque nada foi gerado ainda, aí nesse caso o Halt vai funcionar porque não precisa destruir nada. A não ser que criou, muito difícil...
Navigation
[0] Message Index
[*] Previous page