Hola.
En realidad el significado se acerca mas a: "Los tipos de los parámetros actuales y los formales var, deben ser idénticos"
El procedimiento está correctamente declarado, sin dudas el error está en la llamada. Un ejemplo de como podría producirse:
Código Delphi
[-]
procedure mayor( var a:Integer; var b:Integer );
begin
a := 1;
b := 2;
end;
procedure TForm1.Button1Click( Sender: TObject );
var
a, b: Double;
begin
a := 5;
b := 6;
mayor( a, b ); end;
La causal es clara, declaramos parámetros
por referencia de tipo
Integer y en el ejemplo le estamos pasando como argumento otros de tipo
Double.
Esta llamada:
Código Delphi
[-]
procedure TForm1.Button1Click(Sender: TObject);
var
c, d: Integer;
begin
c := 5;
d := 6;
mayor(c, d);
end;
Sobre el mismo procedimiento no daría ningún error.
Saludos