Hallo
Ich habe mir da eine Funktion gebastelt für UInt64 ...
Delphi-Quellcode:
function StrToU64(const S:string; Default:UInt64=0; aMin:UInt64=Low(UInt64); aMax:UInt64=High(UInt64)): UInt64;
var E: Integer;
begin
Val(S, Result, E);
if E=1 then result:=Default;
result:=Min(aMax, Max(aMin, result));
end;
Wenn man diese Funktion verwendet mit den vorgespannten Vorgabewerten ...
MyU64:=StrToU64('123');
... dann bekomme ich in Delphi2007 folgenden Compilerfehler:
[DCC Fehler]: E1012 Konstantenausdruck verletzt untere Grenzen
Wenn man aber alle Werte mit übergibt, dann scheint es zu gehen ...
MyU64:=StrToU64('123', 0, Low(UInt64), High(Uint64));
Was läuft hier schief?!?
Im übrigen: Wenn man Int64 nimmt, dann geht alles super.
Gruß
Ma2xx