OK, man könnte es natürlich auch so machen:
function Post(const Msg, Link, Image: string; PageOrGroup: TObject=nil): string;
Durch die Überladung hat man einmal das CodeInsight, sowie Codevervollständigung als Hilfe, um darübber die möglichen Parameter zu sehen.
OK, das kann man jetzt auch über DocInsight bekommen.
Aber dadurch hat man immernoch die Typprüfung des Compilers und muß nicht erst nachträglich, also zur Laufzeit, den Typ manuell prüfen.
Allerdings hätte ich es hier anders gelöst, da die 2-Parameter-Variante eh nur eine Weiterleitung ist.
Delphi-Quellcode:
function Post(const Msg, Link, Image: string; Page: TPage=nil): string; overload;
function Post(const Msg, Link, Image: string; Group: TGroup): string; overload;
Denn so sieht man auch gleich was aufgerufen wird, wenn man da "nichts" übgibt.