{ %fail } program gen_default; {$mode delphi} uses SysUtils; type TBla = record Bla: Integer; end; //TBla = array[1..4] of Integer; //TBla = type Integer; procedure SetValue(out v: T; const aValue: T = Default(T)); begin v := aValue; end; procedure Test; var Bla: TBla; begin SetValue(Bla); WriteLn(Format('Bla = (Bla: %d)', [Bla.Bla])); //WriteLn(Format('Bla = (%d, %d, %d, %d)', [Bla[1], Bla[2], Bla[3], Bla[4]])); //WriteLn('Bla = ', Bla); end; begin Test; end.