AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Was ist eine negative TColor Farbe?
Thema durchsuchen
Ansicht
Themen-Optionen

Was ist eine negative TColor Farbe?

Ein Thema von Popov · begonnen am 20. Feb 2012 · letzter Beitrag vom 21. Feb 2012
 
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.555 Beiträge
 
Delphi 12 Athens
 
#4

AW: Was ist eine negative TColor Farbe?

  Alt 21. Feb 2012, 00:46
Es kommt drauf an.

Bei einem 32-Bit-Bitmap entspricht das höchste Byte z.B. der Transparenz.
(innerhalb des Bildes könnte man sogar sowas wie ein 10x10x10, 10x10x12- oder 11x11x10-Farbschema verwenden, als RGB, HSV oder sonstwie)

Im 24-Bit-RGB-System für Delphi-Referenz durchsuchenTColor steckt in Byte 4 meist die zugrundeliegende Farbpalette.
http://www.delphipraxis.net/4067-rgb-tcolor-rgb.html
Delphi-Quellcode:
color
  cpSystemPalette = $00;
  cpActingPalette = $01;
  cpLogicalPalette = $02;
  cpNoColor = $1F;
  cpDefaultColor = $20;
  cpSystemColor = $FF;
cpNoColor or $FFFFFF {also $1FFFFFFF} = clNone {keine Farbe}
cpSystemColor or $xx {also $FF000000 bis $FF0000FF, aber aktuell nur bis etwa $FF00001F} = Systemfarben ala clScrollBar
cpSystemPalette or $xxxxxx = RGB-System {ebenso cpActingPalette oder cpLogicalPalette, nur mit Runden auf mögliche Farben der Hardware}

http://docwiki.embarcadero.com/VCL/de/Graphics.TColor
Zitat:
Hat das höchstwertige Byte den Wert Null, erhalten Sie eine Farbe, die derjenigen in der Systempalette am ähnlichsten ist. Ist das höchstwertige Byte Eins ($01 bzw. 0x01), ergibt das eine Farbe, die derjenigen in der aktiven Palette am ähnlichsten ist. Wenn Sie das höchstwertige Byte auf Zwei ($02 bzw. 0x02) setzen, wird der Wert an die ähnlichste Farbe in der logischen Palette des aktuellen Gerätekontexts angepasst.
Auch wenn TColor quasi als LongInt deklariert ist, ist es besser, wenn man dessen Werte als LongWord interpretiert, bzw. als 4 einzelne Byte.
Erstmal ist es mit dem Palette-Byte einfacher, wenn es auch ein Byte ist
und dann sind 4 Byte (LongWord) IMHO irgendwie verständlicher/übersichtlicher, als 3 Byte und 1 ShortInt (LongInt).
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (21. Feb 2012 um 01:05 Uhr)
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:58 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz