I am not quite sure what you want to happen, (and where we may change etc.) But if we may add, I'd just write an overload precedure for doit without parameters, and then it should compile.

Ie.

procedure TForm1.DoIt;
begin
ShowMessage('Nike!');
end;


But if I am not allowed to add even 'overload to his' DoIt(I:Integer) procedure... I dunno.