Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Bestimmte Farbe auf dem Desktop suchen (https://www.delphipraxis.net/160569-bestimmte-farbe-auf-dem-desktop-suchen.html)

stahli 20. Mai 2011 12:50

AW: Bestimmte Farbe auf dem Desktop suchen
 
Zitat:

Zitat von Aus der Hilfe
Wenn Sie zur Festlegung von TColor nicht die Konstanten aus der Unit Graphics, sondern eine 4-Byte-Hexadezimalzahl verwenden, geben die drei niederwertigen Bytes die RGB-Farbintensität für Blau, Grün und Rot an. Der Wert $00FF0000 (Delphi) bzw. 0x00FF0000 (C++) entspricht einem reinen Blau mit voller Intensität, der Wert $0000FF00 (Delphi) bzw. 0x0000FF00 (C++) einem reinen Grün und der Wert $000000FF (Delphi) bzw. 0x000000FF (C++) einem reinen Rot. $00000000 (Delphi) bzw. 0x00000000 (C++) gibt Schwarz und $00FFFFFF (Delphi) bzw. 0x00FFFFFF (C++) Weiß an.

DeddyH hat recht, sorry.
Die Bezeichung des Farbtyps ist RGB aber der Farbwert wird vom Lo-Byte an genutzt.

Wolfgang Mix 20. Mai 2011 12:58

AW: Bestimmte Farbe auf dem Desktop suchen
 
Ok, sorry, hatte das Dollarzeichen überlesen :(

DeddyH 20. Mai 2011 13:00

AW: Bestimmte Farbe auf dem Desktop suchen
 
Immer diese Ausreden :mrgreen:

BUG 20. Mai 2011 13:04

AW: Bestimmte Farbe auf dem Desktop suchen
 
Kann es sein, dass die Endianness wieder mal verwirrend zugeschlagen hat? :mrgreen:
Code:
Speicher (LOW ... HIGH):
0xRR | 0xGG | 0xBB | 0x00

Als Little-Endian-Integer:
0x00BBGGRR

DeddyH 20. Mai 2011 13:07

AW: Bestimmte Farbe auf dem Desktop suchen
 
Jepp, das kann einen manchmal in den Wahnsinn treiben :)

himitsu 20. Mai 2011 13:18

AW: Bestimmte Farbe auf dem Desktop suchen
 
Zitat:

Delphi-Quellcode:
cx1 := strtoint(edit1.Text)

Reicht es nicht, wenn man das ur einmal umwandelt? (außerhalb der Schleife)

und ein Memo ist arschlangsam, vorallem dann, wenn man viele Zeilen dort einfügt und das auch noch ohne BeginUpdate.

speedy 20. Mai 2011 15:59

AW: Bestimmte Farbe auf dem Desktop suchen
 
Wegen der Farbe in Hex: Mit der Farbangabe klappt das ohne Probleme, das ist ja auch nicht das Problem. Langsam ist es auch, wenn ich nur eine einzelne Farbe zum Vergleichen angebe...

Und auch ohne Memo braucht das Ding ewig. Der schreibt ja nur so alle 3 Sekunden bei nem 100x100 Pixel Bereich ne neue Zeile.
cx1 := strtoint(edit1.text) ist die Anweisung, dass der die X-Position wieder auf den Anfang setzt, sonst bleibt diese ja immer am rechten Rand.

Aphton 20. Mai 2011 17:31

AW: Bestimmte Farbe auf dem Desktop suchen
 
Zitat:

Zitat von BUG (Beitrag 1101972)
Kann es sein, dass die Endianness wieder mal verwirrend zugeschlagen hat? :mrgreen:
Code:
Speicher (LOW ... HIGH):
0xRR | 0xGG | 0xBB | 0x00

Als Little-Endian-Integer:
0x00BBGGRR

Pappalapapp!
Das hat doch nichts mit Endianness zu tun :P
Wenn man sagt, R steht - jetzt im Zehnersystem - an der Einserstelle, G an der Zehnerstelle und B an der Hunderterstelle, dann schreibt mans genauso an: 321:
R = 1
G = 2
B = 3

Genauso verhält es sich mit HEX
R steht an erster Stelle (Einserstelle), G an Sechtzehnerstelle, B an der 256'er Stelle!
Thus BGR!
Endianness hat nichts damit zu tun :P
Hier zumindest nicht!

BUG 20. Mai 2011 21:50

AW: Bestimmte Farbe auf dem Desktop suchen
 
Zitat:

Zitat von Aphton (Beitrag 1102041)
Endianness hat nichts damit zu tun :P
Hier zumindest nicht!

Doch, zumindest an der Stelle, wo man sich nicht einig ist, ob man bei der Reihenfolgenbezeichnung RGB die Reihenfolge im Speicher oder die Reihenfolge in einer aufgeschriebenen 32bit Zahl meint. Diese sind hier ja unterschiedlich.

Aber ich glaube nicht, dass uns diese Diskusion zu irgendetwas Nützlichem führt, zumal der TE kein Problem mit diesem Thema zu haben scheint :wink:


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:18 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz