Das müsste rot sein, richtig? Das Problem ist, dass TColor sehr viel größer sein kann, Du mit 3 Stellen also nicht mehr auskommst. Daher musst Du sicherstellen, dass immer die gleiche Stringlänge verwendet wird. Versuch es einmal so:
Delphi-Quellcode:
c := colordialoguser.color;
Farbstring := Format('%.2x%.2x%.2x', [GetBValue(c), GetGValue(c), GetRValue(c)]);
Wenn ich keinen Fehler gemacht habe, sollten das dann immer 6 Zeichen sein. Beim Empfangen kopierst Du diese 6 Zeichen aus dem Stringanfang, setzt ein $ davor und kannst sie direkt in TColor umwandeln.
Delphi-Quellcode:
c := Copy(DeinText, 1, 6);
Delete(DeinText, 1, 6);
Color := StrToInt('$' + c);