program Meu_Primeiro_Tipo_Procedural;
{ Turbo Pascal 7 source }
{ Delphi Source }
{ Joao Paulo Schwarz Schuler }
{ http://www.schulers.com/jpss }
type TBomProc = procedure;
{ Uma variavel do tipo TBomProc armazenara pontos
de entrada (entry points) de procedimentos. De certa
forma, uma variavel do tipo procedural pode ser
"executada" }
procedure BomDia;
begin
WriteLn('Bom Dia');
end;
procedure BoaNoite;
begin
WriteLn('Boa Noite');
end;
var Bom : TBomProc; { variavel do tipo TBomProc ( procedural ) }
begin { of program }
Bom:=BomDia; { Bom armazena o ponto de entrada de BomDia }
Bom; { executa BomDia }
Bom:=BoaNoite;
Bom; { executa BoaNoite }
end. { of program }