![]() |
Color als integer
Ich stelle gerade ein riesen Grafik Projekt auf OOP um. Da sind alle Color als integer deklariert. Da ich eh schon kurz vor'nem verschärften Nervenzusammenbruch stehe, wollte ich fragen ob Typ TColor unbedingt erforderlich ist, oder ob’s die integer auch tun, oder geht das schief, wegen Maxint+1 meine ich. Wird dieser Wert tatsächlich jemals benutzt?
|
AW: Color als integer
Das mit MaxInt habe ich jetzt nicht ganz verstanden, aber in XE2 ist
Delphi-Quellcode:
TColor = -$7FFFFFFF-1..$7FFFFFFF;
|
AW: Color als integer
Zitat:
|
AW: Color als integer
Zitat:
|
AW: Color als integer
-$7FFFFFFF - 1 = -($7FFFFFFF + 1)
Abs(MinInt) = MaxInt + 1 , da es keine -0 gibt |
AW: Color als integer
Color:= TColor(ini.ReadInteger.. und normal integer schreiben. Stimmt das ?
Edit: äh, mal dumm gefragt, was ist eigentlich der unterschied zwischen integer und longint überhaupt ?? |
AW: Color als integer
LongInt ist ein statischer/nativer Typ, so wie der AnsiString.
Integer ist war mal ein wachsender / sich anpassender Typ. In einem Win16-Compiler (Delphi 1) war er 16 Bit. In einem Win32-Compiler ist er 32 Bit. Und wenn man für Win64 kompiliert wäre er 64 Bit gewesen. So wie String bis D2007 ein AnsiString war und seit D2009 ein UnicodeString ist. (OK, irgend C-Idiot ist auf die Idee gekommen den Integer einzufriehren und dafür den NativeInt zu erfinden, weswegen der Integer auch unter Win64 einem LongInt entspricht) PS: Weil ich diesen Sch*** nicht mitmache, wird der Integer, in meinen Codes, auch in Zukunft weiterhin mitwachsen. :twisted: |
AW: Color als integer
Okay, verstehe. Und wenn logint ein integer32 ist, kann ich dann meine colors als integer lassen? :gruebel:
|
AW: Color als integer
Besser als LongInt.
Vom Wertebereich her stellt TColor ja explizit den selben nativen Wertebereich des LongInt dar.
Delphi-Quellcode:
type
TUrColor = -$7FFFFFFF-1..$7FFFFFFF; TMeinColor = type LongInt; |
AW: Color als integer
Es sollte allerdings klar sein, das man auf die Daten einer TBitmap bei der Bildverarbeitung gewöhnlich über Scanline() zugreift. Wie die einzelnen Pixel dort codiert sind hängt vom Pixelformat ab, aber in keinem Fall als TColor.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:07 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 by Thomas Breitkreuz