Initialization e finalization

Uma Unit (Unidade) também pode conter a seção initialization (inicialização) e a seção finalization (finalização).

Esses dois blocos de código são executados automaticamente no início e no encerramento do programa, respectivamente.

initialization: Executado quando o programa é iniciado e a unidade é carregada na memória, antes do código principal. Múltiplas unidades executam suas seções de inicialização sequencialmente na ordem de referência.

finalization: Executado logo antes do fechamento normal do programa e exclusão do processo; a ordem de execução é o inverso da inicialização.

Funções

Initialization: Registrar classes, abrir arquivos globais / conexões com banco de dados, inicializar variáveis globais, registrar componentes;

Finalization: Liberar memória, fechar handles, salvar configurações, cancelar registro de recursos para evitar vazamento de memória.

Vamos editar o arquivo PAS de unidade da aula anterior: MyUnit.pas

unit MyUnit;

{$ifdef FPC}
{$mode objfpc}{$H+}{$J-}
{$endif}

interface

procedure MyProcedure(const A: Integer);
function MyFunction(const S: string): string;

implementation

procedure MyProcedure(const A: Integer);
begin
  WriteLn('A + 10 is: ', A + 10);
end;

function MyFunction(const S: string): string;
begin
  Result := S + 'strings are automatically managed';
end;

// Seção de inicialização: Executada automaticamente ao carregar esta unidade
initialization
  WriteLn('Hello world!');

// Seção de finalização: Executada automaticamente antes do encerramento normal
finalization
  WriteLn('Goodbye world!');

end.Code language: JavaScript (javascript)

Apenas os dois trechos acima foram adicionados no rodapé do arquivo

Resultado da execução

A linha final “Goodbye world” só será executada após pressionar Enter (quando o programa for encerrado).

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *