Board index » delphi » Colors

Colors


2003-11-11 10:40:52 AM
delphi212
For my Delphi apps, I am dismayed by the following apparent fact:
I set the colors of various forms and controls. I utilize the color
design utility in Delphi, which offers virtually unlimited choices is
setting colors. So far, so good. I appreciate that array of choices,
and try to fine-tune my colors to what pleases me.
Then I run my app on some some arbitrary "other" computer/monitor (i.e.,
not my computer/monitor). And the result is, often enough, definitly
not the colors I set! Not dramatically different -- black does not
become white, etc -- but the exact color I have set if often somewhat
different. Some shade of blue is still more-or-less blue, but not the
exact blue I set.
Why is this so? I design on reasonably "up-do-date" computer/monitor
(no more than about 3 yrs. old, which, in my personal time-frame, is
"up-to-date"). I use Windows XP, as do several of the computers which
display my apps with somewhat different colors.
Delphi offers a colors utility which seems to allow you to set colors
very precisely. But it often just does not work in practice. What's
going on here?
 
 

Re:Colors

Hello, Ben!
You wrote on Mon, 10 Nov 2003 21:40:52 -0500:
Quote
Delphi offers a colors utility which seems to allow you to set colors
very precisely. But it often just does not work in practice. What's
going on here?
The colors in the pulldown are generally guaranteed to be on every system.
Everything else depends on the video card setup.
Cheers,
Ignacio
 

Re:Colors

Ben Crain writes:
Quote
Delphi offers a colors utility which seems to allow you to set colors
very precisely. But it often just does not work in practice. What's
going on here?
A TColor value holds a set of three 8-bit values very precisely. It does
not, however, exert any control on how that color is rendered by
particular hardware or in particular lighting conditions. Have you
calibrated all your hardware to display identical color values
identically? Even seemingly simple colors like white and black won't
necessarily appear the same one two monitors when you look at them side
by side.
On the other hand, if what you're saying is that the numerical value
you're assigning to the TColor property on one computer is not the
numerical value you're retrieving on another computer, then that is a
totally different issue.
--
Rob
 

Re:Colors

Ignacio Vazquez writes:
Quote
Hello, Ben!
You wrote on Mon, 10 Nov 2003 21:40:52 -0500:
>Delphi offers a colors utility which seems to allow you to set colors
>very precisely. But it often just does not work in practice. What's
>going on here?

The colors in the pulldown are generally guaranteed to be on every system.
Everything else depends on the video card setup.
The phrase "generally guaranteed" is nonsense. It implies that there can be
guarantees which are not "general". But anything that is "guaranteed" is
non-conditional: if it is "guaranteed", it is absolutely so. Unless there
are restrictions which are explicitly stated -- which is not the case, in
this example. Go to the Delphi "pulldown": nothing there states: "The
colors that you set on this pulldown are only guesses: anything actually
displayed on an arbitrary computer is a {*word*99}-shoot". Or something similar.
So the alleged fact that the colors on the "pulldown" are not "generally
guaranteed" is meaningless twaddle. Not that it is "wrong", just that it is
meaningless. It leaves the questioner with absolutely no information
whatsoever -- right or wrong --about the question asked.
Which is: Why do colors which I set on my computer/monitor not display
exactly as I set them on other computer/monitors? The answer given in the
response above -- that is depends on the video card setpup -- may (or may not,
as far as I know) be correct, but it so dramatically contradicts the prior
statement that the color are "generally guaranteed" that I simply dismiss it.
I use Windows XP. My computer/ monitor is not ancient (about 3 yrs old). I
test my app on an absolutely "up-to-date" computer/monitor just installed at a
local university, which prides itself on being "state-of-the-art". It's
computers also run Windows XP. it is computers don't display the same colors
as mine. Not dramatically different -- but sufficiently different that there
is no point in using Delphi's "pull-down" color utility to set anything:
might as well set everthing to clBtnFace, clWhite, clBlack, since fine-tuning
colors is a {*word*99}-shoot. What the h.. is going on with computers/monitors?
Aren't there standards?
If I buy a radio and turn it on, I expect to hear "standard" sound -- i.e.,
sound that is very close to the sound emitted by the people who record/send
the radio signals. Why is that different for computers? If I buy a
computer/monitor, why don't I get the display that the designer of the program
intended? I may, or may not, like that -- in which case I will or will not
run the program. But it ought to be the program as designed. If not, the
compute/monitor is a piece of {*word*99}! Are there are no standards?
 

Re:Colors

Ben Crain writes:
Quote
Ignacio Vazquez writes:

>Hello, Ben!
>You wrote on Mon, 10 Nov 2003 21:40:52 -0500:
>>Delphi offers a colors utility which seems to allow you to set colors
>>very precisely. But it often just does not work in practice. What's
>>going on here?
>
>The colors in the pulldown are generally guaranteed to be on every system.
>Everything else depends on the video card setup.
In the response above, my comments begin with 'The phrase "generally
guaranteed"...' Somehow this text is displayed (on my computer) as part of the
comments of the original responder, which is not correct. Perhaps it is an error
in the way I composed my response, for which I apologize. Everything from this
point on is my comment to the orginal responder.
 

Re:Colors

Hello, Ben!
You wrote on Mon, 10 Nov 2003 23:27:36 -0500:
Quote
What the h.. is going on with computers/monitors? Aren't there standards?
Well excuuuuse meee for not immediately picking up that you were talking
about people fiddling with the brightness and contrast controls on the
monitor. When your question is of the caliber of "It doesn't work" what sort
of a response do you expect?
Cheers,
Ignacio
 

Re:Colors

Rob Kennedy writes:
Quote
Ben Crain writes:
>Delphi offers a colors utility which seems to allow you to set colors
>very precisely. But it often just does not work in practice. What's
>going on here?

A TColor value holds a set of three 8-bit values very precisely. It does
not, however, exert any control on how that color is rendered by
particular hardware or in particular lighting conditions. Have you
calibrated all your hardware to display identical color values
identically?
My hardware? What has my hardware got to do with the issue at hand? My
hardware consists of the computer/montor on which I design my app. The
problem arises from the way in which it is displayed on other hardware. How
could I calibrate "my hardware" to affect how it is displayed on other
hardware?
Quote
Even seemingly simple colors like white and black won't
necessarily appear the same one two monitors when you look at them side
by side.
Which means that computers do not adhere to rigorous standards. With a
radio, I hear what the transmitter sends (to a degree of accuracy whereby
the human ear cannot meaningfully distinguish between what is sent and what
is received -- except for the caveat mentioned in comments below). If I buy
a computer, I don't necessarily see what the transmitter (programmer) sends.
Computers fail to conform to the standards of radios!
Quote
On the other hand, if what you're saying is that the numerical value
you're assigning to the TColor property on one computer is not the
numerical value you're retrieving on another computer, then that is a
totally different issue.
I set colors using Delpi's drop-down color designer. I run the app on some
other computer and it is not the same color. Somewhat close, but not
exact. Why not? In the analogy cited above, I have no problem with
radios. No matter what radio I buy, the sound is the same -- as far as
comprehension is concerned. Of course the sound is not "the same" literally
-- I can buy more expensive radios that deliver a higher quality sound.
Beethoven might sound better on a more expensive radio. But that
distinction does not apply to computers. A more expensive computer won't
necessarily render my colors exactly as I designed them. (Does any radio
play Beethoven exactly as Beethoven intended? Probably not, but I would bet
that Herr B. would be pleased at the way radios render his music, while I am
definitely not pleased at the way in which computers render my colors!).
Every computer should render my colors exactly as I design them (within
tolerances indistinguishable to the normal human eye) -- or there should be
the same differentiation as with radios: more expensive computer/monitors
render standards more accurately. But apparently there are no serious
standards. Why, then, is Delphi offering a color utilty at all? Why offer
designers the option of setting colors so precisely, if that option parlays
itself into virtually nothing, in practice?
 

Re:Colors

Ben Crain writes:
Quote
Which is: Why do colors which I set on my computer/monitor not
display exactly as I set them on other computer/monitors? The answer
given in the response above -- that is depends on the video card
setpup -- may (or may not, as far as I know) be correct, but it so
dramatically contradicts the prior statement that the color are
"generally guaranteed" that I simply dismiss it.
I think Ignacio was thinking of palettes and color depth when he gave
his answer, not hardware calibration. Windows guarantees that certain
colors will always be available during 256-color mode, even if another
program changes the system's color palette. Those colors are represented
by clBlue, clRed, clYellow, etc. Those constants do not, however,
control the actual wavelength of the light emited by the monitor or
absorbed by ink from a printer. (I'm glad for that; I wouldn't know what
to do with that level of control.)
Quote
I use Windows XP. My computer/ monitor is not ancient (about 3 yrs
old).
Keep in mind that just because it is new doesn't mean it is perfect.
Quote
I test my app on an absolutely "up-to-date" computer/monitor just
installed at a local university, which prides itself on being
"state-of-the-art". it is computers also run Windows XP. It's
computers don't display the same colors as mine. Not dramatically
different -- but sufficiently different that there is no point in
using Delphi's "pull-down" color utility to set anything: might as
well set everthing to clBtnFace, clWhite, clBlack, since fine-tuning
colors is a {*word*99}-shoot. What the h.. is going on with
computers/monitors? Aren't there standards?
Is it safe to say that this isn't really a Delphi question anymore? (I'm
not telling you to get lost, although you might get more knowledgable
answers on a computer-graphics or photography newsgroup, perhaps
b.p.d.graphics.)
Quote
If I buy a radio and turn it on, I expect to hear "standard" sound
-- i.e., sound that is very close to the sound emitted by the people
who record/send the radio signals.
Close, but not identical. Contributing factors include speaker quality,
volume, accoustics, balance, and atmospheric conditions.
Quote
Why is that different for computers? If I buy a computer/monitor,
why don't I get the display that the designer of the program
intended?
The designer of the program knows nothing about your hardware.
Quote
I may, or may not, like that -- in which case I will or will not run
the program.
You may or may not even notice that anything is different in the first
place. You'd need to have seen the program running on the designer's
computer. Otherwise, how would you know that what you're seeing isn't
what the designer saw?
Quote
But it ought to be the program as designed.
For programs that have a primary function requiring accurate color
reproduction, Windows provides the Image Color Management API to help
ensure that the color values stored in memory are the colors that get
displayed and printed.
From a user's perspective (as opposed to a developer's), I think Adobe
Illustrator and Photoshop include a utility that calibrates the display,
and some display drivers also provide settings you can adjust. On the
monitor and printer property dialogs, there might be a Color Management
tab that allows you to select a color profile for Windows to use with a
given device.
--
Rob
 

Re:Colors

Ignacio Vazquez writes:
Quote
Hello, Ben!
You wrote on Mon, 10 Nov 2003 23:27:36 -0500:
>What the h.. is going on with computers/monitors? Aren't there standards?

Well excuuuuse meee for not immediately picking up that you were talking
about people fiddling with the brightness and contrast controls on the
monitor. When your question is of the caliber of "It doesn't work" what sort
of a response do you expect?

?? I am talking about no such thing! My question is not of the caliber "It
doesn't work". Nobody is fiddling with brightness or contrast. Where could you
possibly get that idea? (Sometimes I despair of posting anything on these ng.
I ask, "what about A?", and the reponses are all about B and C. Pay attention:
the question if about A, not B or C!!).
To reprise: it is not about "It doesn't work". In fact, my app "works" very
well, thank you. It is about how it appears. Notice the difference: works vs.
appearance. If my program calculates 2+2, and renders the answer as 4, then it
"works". If, however, it renders the answer "4" in a color that is (in my
subjective assessment) suboptimal, then the rendering of a correctly working
program is subpar. It is about the fact that, on some computers/monitors, it
doesn't appear, color-wise, exactly as I designed it. What has that got to do
with brightness or contrast? If you answer that users can change the color by
changing brightness or contrast, then that is simply wrong. Color is color. It
should be the same no matter what the brightness or contrast. Contrast with
what? Brigthness I can more or less grasp -- but it should have no effect on
color. A brighter color is still the same color. My house is painted white.
If I shine a flashlight on it is is brigther, but still the same white.
Brightness does not affect color. Contrast is undefined, until you tell me what
is contrasted with what.
I designed my app using D7, Windows XP. I set the colors to be such-and-such.
I run it on another computer/monitor, also under Windows XP. I don't change
ANYTHING concerning brightness/contrast. I just load into the other
computer/monitor, and run it. The colors are (somewhat) different. Nobody
"fiddled" (to use your term) with anything. I just turned on the computer. The
colors were different. They should be the same. End of story.
 

Re:Colors

Hello, Ben!
You wrote on Tue, 11 Nov 2003 01:11:22 -0500:
Quote
The colors were different. They should be the
same. End of story.
Have you considered complaining to the monitor manufacturers?
Cheers,
Ignacio
 

Re:Colors

"Ben Crain" <XXXX@XXXXX.COM>writes
Quote


Ignacio Vazquez writes:

>Hello, Ben!
>You wrote on Mon, 10 Nov 2003 23:27:36 -0500:
>>What the h.. is going on with computers/monitors? Aren't there
standards?
>
>Well excuuuuse meee for not immediately picking up that you were talking
>about people fiddling with the brightness and contrast controls on the
>monitor. When your question is of the caliber of "It doesn't work" what
sort
>of a response do you expect?
>

?? I am talking about no such thing! My question is not of the caliber "It
doesn't work". Nobody is fiddling with brightness or contrast. Where
could you
possibly get that idea? (Sometimes I despair of posting anything on these
ng.
I ask, "what about A?", and the reponses are all about B and C. Pay
attention:
the question if about A, not B or C!!).
A perfectly adequate explanation's been given for the behaviour your seeing.
Several times.
Quote
To reprise: it is not about "It doesn't work". In fact, my app "works"
very
well, thank you. It is about how it appears. Notice the difference:
works vs.
appearance. If my program calculates 2+2, and renders the answer as 4,
then it
"works". If, however, it renders the answer "4" in a color that is (in my
subjective assessment) suboptimal, then the rendering of a correctly
working
program is subpar. It is about the fact that, on some computers/monitors,
it
doesn't appear, color-wise, exactly as I designed it. What has that got
to do
with brightness or contrast? If you answer that users can change the
color by
changing brightness or contrast, then that is simply wrong.
So what on earth do you think brightness and contrast _do_ change? Plus
most monitors let you fiddle with the colour balance too, either in detail
or by setting the "colour temperature". You think _that_ won't change the
colour you see on the screen?
Color is color. It
Quote
should be the same no matter what the brightness or contrast. Contrast
with
what?
If you don't know what your talking about why are you so sure about what's
not the cause?
Quote
color. A brighter color is still the same color. My house is painted
white.
If I shine a flashlight on it is is brigther, but still the same white.
Only if the flashlight itself emits a perfectly white light, with all
colours represented equally. Which in the real world it doesn't. So in the
real world your house's apparent colour will change when illuminated by a
flashlight.
Quote
I designed my app using D7, Windows XP. I set the colors to be
such-and-such.
I run it on another computer/monitor, also under Windows XP. I don't
change
ANYTHING concerning brightness/contrast. I just load into the other
computer/monitor, and run it. The colors are (somewhat) different.
Nobody
"fiddled" (to use your term) with anything. I just turned on the
computer. The
colors were different. They should be the same. End of story.
Yeah, because computers are psychic and _know_ the exact colour you're
expecting to see. Changing monitor settings can change all aspects of
colours (even before physical differences in construction are taken into
account), so what do you think the odds are that two random monitors will
happen to emit exactly the same colour if sent the same signals?
Calibrate the monitors identically then try for a match. If you don't know
what calibration is look it up, then you will know what we (and you) are
talking about.
Ian
 

Re:Colors

Ben Crain writes:
Quote
My hardware? What has my hardware got to do with the issue at hand?
My hardware consists of the computer/montor on which I design my app.
The problem arises from the way in which it is displayed on other
hardware. How could I calibrate "my hardware" to affect how it is
displayed on other hardware?
I don't really care who owns the computers. that is not important. You're
the one using them. Have you calibrated them? (I assume the answer is
no.) Besides, you could calibrate your personal monitor to match the
display of the montor that isn't yours. Then you'd have to re-adjust the
colors you've chosen on your computer to compensate for the
recalibration, but once you've done that, the colors on your computer
should appear the same as they appear on whoever else's computer you're
using.
Quote
>Even seemingly simple colors like white and black won't necessarily
>appear the same one two monitors when you look at them side by
>side.

Which means that computers do not adhere to rigorous standards.
Not when it comes to color, no, I guess not. Not right out of the box,
anyway. That doesn't mean they aren't capable of meeting rigorous
standards, though, but be forewarned: That might require calibration.
Quote
Computers fail to conform to the standards of radios!
What standards are there for radios, anyway? I suppose the FCC has some.
Radios have been around a lot longer, which means there has been more
time for regulations to be passed. I don't know much about the industry;
maybe it is easier to reproduce sound than it is to reproduce light.
Maybe there is a greater need for sound regulation than for light
regulation. If you're not satisfied with the required quality of display
hardware, then perhaps you should write your representative.
Quote
Beethoven might sound better on a more expensive radio. But that
distinction does not apply to computers. A more expensive computer
won't necessarily render my colors exactly as I designed them.
Computer hardware certainly varies in quality. The variation may or may
not have a direct correlation to the price. With the proper calibration,
I would expect a high-quality monitor to display colors as they were
intended.
Quote
Every computer should render my colors exactly as I design them
(within tolerances indistinguishable to the normal human eye)
Different eyes have different levels of tolerance, and I am sure they can
all fall within the "normal" range.
Quote
-- or there should be the same differentiation as with radios: more
expensive computer/monitors render standards more accurately. But
apparently there are no serious standards.
Have you visited the Web site of the International Color Consortium?
www.color.org/
Quote
Why, then, is Delphi offering a color utilty at all?
Because it is better than having to type in the integer color values by hand?
Quote
Why offer designers the option of setting colors so precisely, if
that option parlays itself into virtually nothing, in practice?
When you choose the color on your own computer, is that color not
rendered the same when you run the program on that same computer later
on? Within the realm of a single computer, the color reproduction should
be fine.
--
Rob
 

Re:Colors

the user maybe using 256 or 16k color modes and if your using 24/32 bit
colors
then they are not all going to be the same..
also many video cards have untilties in their drivers to adjust the hue
and etc..
Ben Crain writes:
Quote
For my Delphi apps, I am dismayed by the following apparent fact:
I set the colors of various forms and controls. I utilize the color
design utility in Delphi, which offers virtually unlimited choices is
setting colors. So far, so good. I appreciate that array of choices,
and try to fine-tune my colors to what pleases me.
Then I run my app on some some arbitrary "other" computer/monitor (i.e.,
not my computer/monitor). And the result is, often enough, definitly
not the colors I set! Not dramatically different -- black does not
become white, etc -- but the exact color I have set if often somewhat
different. Some shade of blue is still more-or-less blue, but not the
exact blue I set.

Why is this so? I design on reasonably "up-do-date" computer/monitor
(no more than about 3 yrs. old, which, in my personal time-frame, is
"up-to-date"). I use Windows XP, as do several of the computers which
display my apps with somewhat different colors.

Delphi offers a colors utility which seems to allow you to set colors
very precisely. But it often just does not work in practice. What's
going on here?
 

Re:Colors

Ben Crain writes:
Quote
If you answer that users can change the color by changing brightness
or contrast, then that is simply wrong. Color is color.
Strangely, I don't find that definition very useful.
Quote
A brighter color is still the same color. My house is painted white.
If I shine a flashlight on it is is brigther, but still the same
white. Brightness does not affect color.
A TColor value is stored by its red, green, and blue components. It
could just as well be stored using its hue, satuation, and brightness
components. Sometimes "color" is used to refer only the the hue, but I
somehow don't think that is what you mean since I doubt someone so
concerned about how things appear would so readily discard two-thirds of
what determines that appearance.
Quote
Contrast is undefined, until you tell me what is contrasted with
what.
A pixel set to display color value $0000ff is contrasted with an
adjacent pixel set to display color value $ff0000. You can adjust the
monitor's contrast setting with a dial or some buttons on the front of
the unit. In high-contrast mode, the one pixel should appear red and the
other blue. In low-contrast mode, they'll both appear gray.
--
Rob
 

Re:Colors

In article <XXXX@XXXXX.COM>, Ben Crain
<XXXX@XXXXX.COM>writes:
Quote
Which means that computers do not adhere to rigorous standards. With a
radio, I hear what the transmitter sends (to a degree of accuracy whereby
the human ear cannot meaningfully distinguish between what is sent and what
is received
My radio has a 'Tone' knob. It is probably not set to the same position as
yours. So what I hear is different to what you hear. And we can both twiddle
our knobs to hear different sounds.
Same with the computer. If the sun is shining I increase the brightness so I
can see a screen that was OK at night. I wouldn't like it it if you (having
learned enough about calibrating hardware to be able to do it!) disabled
this facility.
Windows Control panel gives other things for users to twiddle too..
When setting colours it is best, as far as possible to use the 'Windows
Defined' colours - clAppWorkspace, clHighlight etc. Then if the user
twiddles these to something silly, your app can have unreadable text (text
same as background), but so will all other apps, so they its not your fault
and they must untwiddle it themselves.