Bin To hex erwartet keinen String im Format mit 1 und 0. Bin to hex macht nix anderes als die
Ascii-Zeichen des Buffers in Hex zu wandeln.
Das bei dir nur 3130 angezeigt wird liegt daran das du mit
GetMem(hex,2);
nur 2 Byte reservierst.
denn die 31 steht für den
Ascii-Code der 1 als Hex und
die 30 steht für den
Ascii-Code der 0 als Hex.
Les dir einfach mal die Hilfe durch, da steht das du mindestens 2 * Buffersize an speicher dafür brauchst.