Hola,
Bueno. Creo que en realidad un parámetro por defecto es también un parámetro opcional... Es decir, al siguiente procedimiento pueden pasársele dos parámetros de tipo "integer", pero, opcionalmente, puede dejarse sin pasar el segundo parámetro.
Código Delphi
[-]
procedure Procedimiento(param1: integer; param2: integer = 0);
begin
if(param2 <> 0) then
begin
end;
end;