En el caso que comenta
Neftali, el parámetro es un método. También puedes pasar procedimientos regulares como parámetros a otro procedimiento pero tienes que declarar un tipo de datos para ello. Es decir, no puedes usar directamente la palabra reservada
procedure en la declaración del parámetro.
Aquí un ejemplo:
Código Delphi
[-]
type
TProcDesconocido = procedure;
procedure HazAlgo(Proc: TProcDesconocido);
begin
Proc;
end;
procedure Saluda;
begin
ShowMessage('Hola');
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
HazAlgo(Saluda);
end;
El tipo
procedure puede también tener parámetros:
Código Delphi
[-]
type
TProcDesconocido = procedure (S: String);
procedure HazAlgo(Proc: TProcDesconocido);
begin
Proc('mundo');
end;
procedure Saluda(S: String);
begin
ShowMessage('Hola ' + S);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
HazAlgo(Saluda);
end;
// Saludos