Mal was Grundsätzliches zum Farbverlauf.
Ein "g'scheite" Funktion zum Berechnen eines Farbverlaufs braucht 3 Parameter:
* Anfangsfarbe
* Endfarbe
* Überblendungsfaktor
Der Überblendungsfaktor könnte ein Double im Bereich 0.0 bis 1.0 oder auch 0% bis 100% sein.
Wenn man Integerarithmetik einsetzen möchte (gerade auch weil man die Funktion in Assembler implementieren will)
dann kann man den Überblendungsfaktor auch von 0 bis 255 (Datentyp Integer) festlegen.
Ich verweise hier mal auf
Farbverlauf berechnen.
Du kannst versuchen die Funktion ColorBetween() in Assembler umzusetzen.
Den Aufruf von ColorToRGB() kann man sich schenken, wenn man sicherstellt, dass keine Systemfarben wie z.B. clWindow übergeben werden.
Den Aufruf von GetRValue(), GetGValue() und GetBValue() braucht man auch nicht, wenn man die Farbkomponenten rot, grün und blau direkt aus TColor rausholt.