Naja ganz so kompliziert musst das ja auch nich machen, so geht das besser und brauch weniger function calls:
hab aber auch nochmal nen paar alte programme durchforstet und ne elegantere loesung gefunden, dafuer musst du dir nen record machen der so Aussieht:Code:Result := StrToInt('$' + IntToHex(A,2) + IntToHex(rgb(R,G,B),6));
mit Diesem Struct hast du einen 8-Byte wert bei dem du die Byte-Gruppen 1-4 einzeln beschreiben kannst, das sieht in der Praxis dann so aus:Code:TRGBA_struct = record
case integer of 0: (z32:LongWord);
1: (z8:array[0..4]of Byte)
end;
da brauchst du dann ueberhaupt kein IntToHex etc mehr rufen.Code:function GetRGBA(const R,G,B,A : Byte): TColor;
var
cRGBA: TRGBA_struct;
begin
cRGBA.z8[0]:= R;
cRGBA.z8[1]:= G;
cRGBA.z8[2]:= B;
cRGBA.z8[3]:= A;
Result:= cRGBA.z32;
end;