O Nascimento, Vida e Morte de uma Forma Delphi

Dentro Delphi, todo projeto possui pelo menos uma janela - a janela principal do programa. Todas as janelas de um aplicativo Delphi são baseadas em Objeto TForm.

Formato

Objetos de formulário são os componentes básicos de uma aplicação Delphi, as janelas reais com as quais um usuário interage quando executa a aplicação. Os formulários têm suas próprias propriedades, eventos e métodos com os quais você pode controlar sua aparência e comportamento. Um formulário é realmente um componente Delphi, mas, diferentemente de outros componentes, um formulário não aparece na paleta de componentes.

Normalmente, criamos um objeto de formulário iniciando um novo aplicativo (Arquivo | Novo Aplicativo). Esse formulário recém-criado será, por padrão, o formulário principal do aplicativo - o primeiro formulário criado em tempo de execução.

Nota: Para adicionar um formulário adicional ao projeto Delphi, selecione Arquivo | Nova forma.

Nascimento

OnCreate
O evento OnCreate é acionado quando um TForm é criado pela primeira vez, ou seja, apenas uma vez. A declaração responsável pela criação do formulário está na fonte do projeto (se o formulário estiver definido para ser criado automaticamente pelo projeto). Quando um formulário está sendo criado e sua propriedade Visible é True, os seguintes eventos ocorrem na ordem listada: OnCreate, OnShow, OnActivate, OnPaint.

instagram viewer

Você deve usar o manipulador de eventos OnCreate para executar, por exemplo, tarefas de inicialização, como alocar listas de cadeias.

Quaisquer objetos criados no evento OnCreate devem ser liberados pelo evento OnDestroy.

 OnCreate -> OnShow -> OnActivate -> OnPaint -> OnResize -> OnPaint... 

OnShow
Este evento indica que o formulário está sendo exibido. O OnShow é chamado logo antes de um formulário se tornar visível. Além dos formulários principais, esse evento acontece quando configuramos a propriedade Visible dos formulários como True ou chamamos o método Show ou ShowModal.

OnActivate
Este evento é chamado quando o programa ativa o formulário - ou seja, quando o formulário recebe o foco de entrada. Use este evento para alterar qual controle realmente obtém o foco, se não for o desejado.

OnPaint, OnResize
Eventos como OnPaint e OnResize são sempre chamados depois que o formulário é criado inicialmente, mas também são chamados repetidamente. OnPaint ocorre antes de qualquer controle no formulário ser pintado (use-o para pintura especial no formulário).

Vida

O nascimento de uma forma não é tão interessante quanto sua vida e morte podem ser. Quando seu formulário é criado e todos os controles aguardam a manipulação de eventos, o programa está sendo executado até que alguém tente fechar o formulário!

Morte

Um aplicativo orientado a eventos para de executar quando todos os seus formulários são fechados e nenhum código está em execução. Se um formulário oculto ainda existir quando o último formulário visível for fechado, seu aplicativo parecerá ter terminou (porque nenhum formulário é visível), mas continuará sendo executado até que todos os formulários ocultos sejam fechadas. Pense em uma situação em que o formulário principal fica oculto cedo e todos os outros são fechados.

... OnCloseQuery -> OnClose -> OnDeactivate -> OnHide -> OnDestroy 

OnCloseQuery
Quando tentamos fechar o formulário usando o método Close ou por outros meios (Alt + F4), o evento OnCloseQuery é chamado. Portanto, o manipulador de eventos para esse evento é o lugar para interceptar o fechamento de um formulário e evitá-lo. Usamos o OnCloseQuery para perguntar aos usuários se eles têm certeza de que realmente desejam que o formulário seja fechado.

procedimento TForm1.FormCloseQuery (Remetente: TObject; var CanClose: Boolean);

início

E seMessageDlg('Realmente fecha esta janela?', MtConfirmation, [mbOk, mbCancel], 0) = mrCancel então CanClose: = Falso;

fim; 

Um manipulador de eventos OnCloseQuery contém uma variável CanClose que determina se um formulário pode fechar. O manipulador de eventos OnCloseQuery pode definir o valor de CloseQuery como False (por meio do parâmetro CanClose), interrompendo o método Close.

OnClose
Se OnCloseQuery indicar que o formulário deve ser fechado, o evento OnClose será chamado.

O evento OnClose nos dá uma última chance para impedir que o formulário seja fechado. O manipulador de eventos OnClose possui um parâmetro Action, com os seguintes quatro valores possíveis:

  • caNone. O formulário não tem permissão para fechar. Como se tivéssemos definido CanClose como False no OnCloseQuery.
  • ocultar. Em vez de fechar o formulário, você o oculta.
  • caFree. O formulário está fechado e, portanto, a memória alocada é liberada pelo Delphi.
  • caMinimize. O formulário é minimizado, em vez de fechado. Esta é a ação padrão para formulários filho MDI. Quando um usuário encerra o Windows, o evento OnCloseQuery é ativado, não o OnClose. Se você deseja impedir que o Windows seja desligado, coloque seu código no manipulador de eventos OnCloseQuery, é claro que CanClose = False não fará isso.

OnDestroy
Depois que o método OnClose for processado e o formulário for fechado, o evento OnDestroy será chamado. Use este evento para operações opostas às do evento OnCreate. OnDestroy é usado para desalocar objetos relacionados ao formulário e liberar a memória correspondente.

Quando o formulário principal de um projeto é fechado, o aplicativo é encerrado.

instagram story viewer