fwiw, i would suggest using Oxygene's built in "nullable" language feature, as it works m uch more transparent and intuitively than System.Nullable. e.g:
method Settings.GetLowerBound : nullable Double;
begin
var bound : Double;
if Double.TryParse(txtLowerBound.Text, out bound) then
begin
Result := bound;
end else
begin
Result := nil;
end;
end;
Regardless, getting "The runtime has encountered a fatal error." is indicative of a compiler error. I will log an issue on our side with your testcase.