Warum bringt es der Compiler nicht hin, die implizite Integer-Zuweisung hier zu machen?
Der Compiler lässt halt keine Default-Parameter bei Records zu. Da schaut er dann nicht mehr, ob das über eine implizite Typumwandlung realisierbar wäre.
Lösen kannst du das wohl nur über ein overload:
Delphi-Quellcode:
function Produce(AParam: TIntBoolean): string; overload;
function Produce: string; overload;
...
function Produce: string;
begin
Result := Produce(1);
end;