Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi [gelöst] untersch. Farben bei TColor=15780518 vs. clSkyBlue (https://www.delphipraxis.net/95675-%5Bgeloest%5D-untersch-farben-bei-tcolor%3D15780518-vs-clskyblue.html)

kalmi01 11. Jul 2007 12:53


[gelöst] untersch. Farben bei TColor=15780518 vs. clSkyBlue
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi,

bin eben auf einen seltsamen Fehler in Delphi gestossen:

Für ein Memo habe ich die Farbe clSkyBlue als Hintergrund gewählt und der Farbton war mir zu blass.

Also hab in meinem Editor für den linken Farbkreis clSkyBlue ausgewählt.
Die Farbe kam mir gleich wesentlich kräftiger vor, als das Delphi-Pedant.
Also hab ich mir den TColor-Wert geben lassen = 15780518
und habe diesen im Color-Property eingetragen.
Jetzt wurde das Memo so dunkel, wie erwartet, und das Color-Property sprang auf clSkyBlue :gruebel:

Hat jemand eine Erklärung dafür ?

RavenIV 11. Jul 2007 13:49

Re: unterschiedliche Farben bei TColor=15780518 vs. clSky
 
Ist mir auch schon aufgefallen, dass Delphi die Farben nicht ganz korrekt darstellt.

Ich habe ein Orange ($000080FF) in einer Grafik.
Über die Grafik habe ich eine TLabel gelegt und dieser auch die Hintergrundfarbe $000080FF gegeben.
Nun hat die Farbe aber nicht übereingestimmt.
Dem TLabel musste ich $000080DC geben, damit es einigermassen passt.


Eine definitive Lösung hab ich aber nicht gefunden...

kalmi01 11. Jul 2007 13:53

Re: unterschiedliche Farben bei TColor=15780518 vs. clSky
 
Hallo,

wenn es (geringfügige) Unterschiede zwischen 2 Kompo's geben würde, könnt ich das ja noch verstehen.
Aber in meinem Fall sind Beides TEdit's und ich wähle einmal clSkyBlue aus und einanderes Mal gebe ich den TColor-Wert ein.
Als Ergebnis steht in beiden Color-Properties clSkyBlue

RavenIV 11. Jul 2007 14:15

Re: unterschiedliche Farben bei TColor=15780518 vs. clSky
 
Ich glaube, ich hab die Lösung für Dich:

In Graphics.pas ist dieses definiert:
clSkyBlue = TColor($F0CAA6);
$F0CAA6 = 15780518

Bei Dir im Formulat steht für Edit1:
Color = 16776176 => $FFFBF0
und für Edit2:
Color = clSkyBlue => $F0CAA6 => 15780518

Da die beiden Farbwerte aber nicht genau stimmen, nimmt Delphi den Wert, der der angegebenen Farbe am ähnlichsten ist. Und dies ist eben clSkyBlue. Angezeigt wird aber von Windows der echte Farbwert entsprechend 15780518 und 16776176.

Und wenn Du im Objektinspektor bei "Color" schaust, findest du clSkyBlue doppelt. Einmal oben und einmal ganz unten in der Liste.

SirThornberry 11. Jul 2007 14:22

Re: unterschiedliche Farben bei TColor=15780518 vs. clSky
 
bei mir war und ist clskyeblue schon immer clskyeblue. Und ich wüsste auch keinen Grund warum DELPHI da was ändern sollte. Eine Farbe ist eine Zahl und für die Darstellung ist die Komponenten (nicht Delphi) verantwortlich. Die Farbe kann also nur variieren wenn mit Transparenzen gearbeitet wird oder die Komponente die Farbe anders interpretiert. Ansonsten ist die Zahl welche die Farbe repräsentiert eine andere wenn die Farbe nicht gleich der anderen Farbe ist.

negaH 11. Jul 2007 14:31

Re: unterschiedliche Farben bei TColor=15780518 vs. clSky
 
Falls clSkyBlue zweimal im Property Editor auftaucht dann hast du irgend eine Fremdkomponente oder Bibliothek=Package installiert. Diese definiert seine eigene clSkyBlue. Das sind Fragmente aus früheren Zeiten, da gab es clSkyBlue noch nicht Standardmäßig in Delphi und die Komponentenentwickler habe ihr eigenes clSkyBlue registriert. Man kann nämlich als Designtime Package mit Property Editoren seine eigenen Farben zu der Color Property Dropdoan Liste hinzufügen.

achso, dazu muß man wissen das aus einem String wie "clSkyBlue" ja ein Zahlenwert entstehen soll. Dazu verwaltet Delphi intern eine Liste zur Konvertierung -> IdentToColor() und ColorToIdent(). Man kann nun zu diesr Liste eigene "clXXXXX" Konstanten hinzufügen. Und das hat eine installierte Fremdkomponnete bei dir gemacht.

Gruß Hagen

RavenIV 11. Jul 2007 14:32

Re: unterschiedliche Farben bei TColor=15780518 vs. clSky
 
sag ich doch.
15780518 <> 16776176

Aber für die Darstellung im Objectinspector ist Delphi zuständig.
Delphi ändert 15780518 in clSkyBlue und 16776176 auch in clSkyBlue wenn man es bei "Color" im Objectinspector einträgt.
Und da muss irgendwo ein Bug liegen...

kalmi01 11. Jul 2007 14:33

Re: unterschiedliche Farben bei TColor=15780518 vs. clSky
 
Zitat:

Zitat von SirThornberry
bei mir war und ist clskyeblue schon immer clskyeblue.

Tja, vielleicht ein kleiner Unterschied zwischen D7 und D2006.

Zitat:

Zitat von RavebIV
Bei Dir im Formulat steht für Edit1:
Color = 16776176 => $FFFBF0
und für Edit2:
Color = clSkyBlue => $F0CAA6 => 15780518

Genau,
Edit2 ist korrekt, da habe ich den Farbwert 15780518 händisch eingegeben.

Bei Edit 1 habe ich im Color-PullDown clSkyBlue ausgewählt.

Das clSkyBlue 2 mal da ist, macht da keinen Unterschied.
Wähl ich per Color-PullDown aus, sehen die Farben anders aus, als sie eigentlich sollten.

negaH 11. Jul 2007 14:34

Re: unterschiedliche Farben bei TColor=15780518 vs. clSky
 
Ähm, meinen Post nicht gelesen ?

SirThornberry 11. Jul 2007 14:36

Re: unterschiedliche Farben bei TColor=15780518 vs. clSky
 
@kalmi01: Hast du irgendwelchen zusätzlichen Packages installiert? Auch unter Delphi3, Delphi5, Delphi6, Delphi7, Delphi2005 hatte ich bisher immer nur ein clSkyBlue genau wie unter meinem aktuellen bds2006


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

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