Innanzitutto, occorre precisare che i valori dei colori in Delphi sono numeri interi e pertando, partendo da una stringa, è necessario eseguire una conversione; mi stupisce che il semplice "cast" a TColor funzioni in quel modo, senza passare attraverso almeno una chiamata alla IntToStr.

Inoltre, trattandosi di valori interi, il byte del rosso è quello di peso inferiore, mentre salendo di peso nei bit che compongono il valore del colore troviamo poi il verde e il rosso; detto questo, quando ci specifica un valore per il colore, la parte esadecimale più a destra rappresenta il rosso.

P.S.: se non hai ancora studiato nulla di Delphi, forse è il caso di approfondire prima di mettersi a sviluppare qualche applicazione, almeno sui concetti fondamentali dell'ambiente e del linguaggio.

Ciao!