Thema: Delphi Textfarbe faden

Einzelnen Beitrag anzeigen

Benutzerbild von nTE
nTE

Registriert seit: 8. Sep 2003
60 Beiträge
 
#3

Re: Textfarbe faden

  Alt 15. Apr 2004, 15:39
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. ^^
  Mit Zitat antworten Zitat