function test(a:integer; b: integer:=3): integer; begin Result := b; end; function test2(a: integer := 4): integer; begin Result := a; end; function string.test(a: integer := 6): integer; begin Result := a; end; function ff(delim: string := ' '): string; begin Result := 'abc'; end; procedure tt(str: string); begin assert(str = 'abc'); end; procedure tt(i: integer); begin raise new Exception; end; begin assert(test(2)=3); assert(test(2,4)=4); var j : integer := test2; assert(j=4); var i := test2; assert(i = 4); var s := 'abcd'; assert(s.test=6); var k := s.test; assert(k = 6); tt(ff); end.