Hallo
DP'ler,
wir haben eine Funktion:
Delphi-Quellcode:
Function INVHEXDW(a:string):int64;
Begin
If a='' then a:='00000000';
while length(a)<8 do
a:='0'+a;
result:= INVHEXB(a[1]+a[2])* 16777216 + INVHEXB(a[3]+a[4]) * 65536 +
INVHEXB(a[5]+a[6])* 256 + INVHEXB(a[7]+a[8]);
end;
Aufruf mit:
var n:integer;
begin
n:=INVHEXDW(a:string):
end;
Der Funktionsaufruf funktioniert einwandfre solange ich mit meinen Rückgabewert im Wertebereich des integer bleibe. Leider ist dem bei grossen Hex Zahlen nicht so. Beim casten auf n gibts dann einen rangecheck error.
Gibt es irgendeine Möglichkeit aus der aufgerufenen Funktion heraus festzustellen ob der Übergabetyp stimmt oder nicht?
Oder gibt es eine andere Möglichkeit, von der Funktionsseite diesen Fehler zu verhindern?
Es ist mir nicht möglich jeden Aufruf abzuchecken.
Grüsse
rainer