Was noch nicht erwähnt wurde: In deinem konkreten Beispiel könntest du die drei angegebenen Funktionen mit
overload
realisieren, indem du die Parameterreihenfolge änderst:
Delphi-Quellcode:
Function bla (X:integer; y:boolean; x: boolean): Boolean; overload;
Function bla (X:integer; x: boolean): Boolean; overload;
Function bla (y:boolean: X:integer): Boolean; overload;
Die kann der Compiler alle auseinanderhalten, da es bei der ersten Funktion drei Parameter gibt, und bei den beiden anderen die Parameter nicht gleich sind; denn ob der Compiler als erstes Argument einen Integer oder einen Boolean erwartet, das ist für ihn etwas völlig Verschiedenes.
Wenn es dir sehr am Herzen liegt, kannst du auch den folgenden Trick anwenden (das gibt hier natürlich jetzt einen Aufschrei, aber funktionieren tut es selbstredend):
Function bla (X:integer; x: boolean; Dummy:TObject): Boolean; overload;
Das rufst du mit
bla(42,True,nil)
auf. Durch Verwürfeln der Reihenfolge kannst du noch einige Funktionen
bla
realisieren.