Wozu wandelst du denn mehrfach um, bei de Rückwandlung?
- 4x-Hex kommem an
- wird von dir in 2x Byte umgewandelt
- dann wieder in 2x 2x-Hex
- zusammengesetzt zu einem 4x-Hex
- und dann nochmal zusammen in einen Integer (Word)
Da kann man so Einiges (grau) weglassen.
PS: Eine Prüfung ob der Hex-String OK war, wäre vielleicht auch keine Schlechte Idee
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
i : Integer;
s : String;
begin
i := 4
// umwandeln
s := IntToHex(StrToInt('9999'), i);
// s übertagen
ShowMessage(s);
// umwandeln
if TryStrToInt('$' + s, i) then
begin
// i wurde empfangen
ShowMessage(IntToStr(i));
end else
ShowMessage('Fehler');
end;
oder villeicht gleich noch den Wertebereich mit prüfen
Delphi-Quellcode:
* ...
// umwandeln
if TryStrToInt('$' + s, i) and (i >= 0) and (i <= $FFFF) then
begin
// i wurde empfangen
ShowMessage(IntToStr(i));
end else
ShowMessage('Fehler');
end;