Den Ort der Entstehung habe ich gefunden, weshalb der Code Fehler ausspuckt bleibt mir hingegen noch immer ein Rätsel:
Delphi-Quellcode:
function HexStrToInt(str: string): integer;
var
ColorInteger: integer;
Einer, Zehner: Integer;
ColorString: string;
HexString: String;
begin
Einer:=0;
Zehner:=0;
HexString:=str;
if Length(HexString)=2 then
begin
try ColorString:=copy(HexString,length(HexString)-1,2); except end;
if ColorString[1] in ['0'..'9'] then Zehner:= Ord(ColorString[1]) - 48
else if ColorString[1] in ['A'..'F'] then Zehner:= Ord(ColorString[1]) - 55;
if ColorString[2] in ['0'..'9'] then Einer:= Ord(ColorString[2]) - 48
else if ColorString[2] in ['A'..'F'] then Einer:= Ord(ColorString[2]) - 55;
end
else // length =1
begin
try ColorString:=copy(HexString,length(HexString),1); except end;
Zehner:=0;
if ColorString[1] in ['0'..'9'] then Einer:= Ord(ColorString[1]) - 48 // hier tritt der Fehler auf
else if ColorString[1] in ['A'..'F'] then Einer:= Ord(ColorString[1]) - 55;
end;
ColorInteger:=16*Zehner+Einer;
Result:=ColorInteger;
end;