Das $ vorne steht dafür, dass der Wert Hexadezimal notiert ist, daher die Buchstaben. :P
Im Endeffekt kannst du ganz leicht schwarz faden, indem du die Werte für
RGB (Delphi notiert sie BGR soweit ich weiß) gleichmäßig an Null annäherst.
Der Wert schlüsselt sich so auf:
$00BBGGRR, d.h. ein Byte (0-255) für jeden Farbanteil.
Um diesen zu verringern könntest du einfach einfach
LabelFade.Font.Color := LabelFade.Font.Color - (1 shl 16) - (1 shl 8) - 1;
In den Timer einbinden.
(Eine Überprüfung ob der Wert nicht schon kleiner als 0 (also $00000000 für Schwarz) ist, müsste sicherheitshalber natürlich auch dazu.)
Falls du dich jetzt fragst was shl macht:
SHL = shift left (Schiebe links)
Das ist eine binäre Operation, d.h. 1 shl 1 wäre 2 weil 0001b eins nach links geschoben 0010b also 2 dezimal wäre.
1 SHL 8 schiebt die eins also an die Stelle wo das neue Byte anfängt (in diesem Falle das für Grün) und 1 SHL 16 logischerweise an die Stelle wo Blau anfängt.
Damit kannst du dir schwieriges (Kopf-)Rechnen sparen und hältst den Code leichter verständlich. :P
Ich hoffe natürlich, dass du dich mit den Zahlensystemen Hexadezimal und Binär schon ein wenig auskennst. ^^