I have two functions in Delphi code for converting between the two colour formats:
At the top of your code, you need a CustomDWORD type:
Type
CustomDWORD = record
case byte of
0 : (Full : longint);
1 : (HiWord, LoWord : word);
2 : (Hw_HiByte, Hw_LoByte, Lw_HiByte, Lw_LoByte : byte);
3 : (FourBytes : array[0..3] of byte);
end;
DarkBASIC RGB to Delphi TColor:
function RGBToColor(RGB: CustomDWORD):TColor;cdecl;
var
Conv: CustomDWORD;
begin
Conv.FourBytes[0] := RGB.Lw_HiByte;
Conv.FourBytes[1] := RGB.Hw_LoByte;
Conv.FourBytes[2] := RGB.Hw_HiByte;
Conv.FourBytes[3] := 0;
Result := TColor(Conv);
end;
Delphi TColor to DarkBASIC RGB
function ColorToRGB(Color:TColor):CustomDWORD;cdecl;
var
Conv: CustomDWORD;
RGB: CustomDWORD;
begin
RGB := CustomDWORD(Color);
Conv.Lw_HiByte := RGB.FourBytes[0];
Conv.Hw_LoByte := RGB.FourBytes[1];
Conv.Hw_HiByte := RGB.FourBytes[2];
Conv.Lw_LoByte := 0;
Result := Conv;
end;