Delphi-Quellcode:
/// VCL
result := StrToInt('
$' + value[2] + value[3]) + StrToInt('
$' + value[4] + value[5])
shl 8 + StrToInt('
$' + value[6] + value[7])
shl 16;
1. Problem: Ergibt ja bei deinem Vorgabewert 255 als Ergebnis (Result).
Wenn du nun nicht $FF0000 nimmst (255 für Rot), sondern $00FF00 kommt 65280 raus (eigentlich ja 255 für Grün).
Du musst da dein shl weg lassen, dann passt dies wieder.
2. Problem: Lässt du nun die shl weg, sieht man das er deine Werte addiert, ich denke aber du willst bei $FFFF00 nicht 510 als Ergebnis (sagt nichts aus), sondern 2552550.
Dafür musst du die einzelnen Teile in inttostr() Klammern.
3. Problem: Diese Ausgabe ist dann, dadurch das das Ergebnis jeweils 1, 2 oder 3 Stellen (Z.B.: $00FF00 = 02550) haben kann nicht gut zum Auswerten. Daher empfehle ich dir eine Ausgabe als Array oder Record, wie du es bei FMX getan hast oder du sagst mal was du damit überhaupt bezweckst.