> > The default should always be to follow the theme, the programmer should
> > think five or six times before overriding it - but when he does, it must
> > be assumed that he had a good reason and his changes should be honoured.
>
> Exactly.
>
Let me try to explain what I mean with an EXTREME example.
Say you are coding the control system for a nuclear power station. Now 99% of
your screen is showing the current values for things and with some sliders
the operators can adjust some of the equipment settings to ensure that
everything remains normal.
For almost all times this is ALL there is to it. But there on one side is a
few critical values, these ones won't just be changed by adjusting one thing,
if they are outside tolerance values then that means a trained expert will
need to adjust probably 80% of those sliders to very specific settings to
deal with what is in fact an emergency.
So when one of those goes out of tolerable range you start by activating every
alarm in the building, syrens howling, strobe lights flashing the works. But
on screen you do NOT want everything highlighted. What you DO want is for the
area around the specific value that triggered the problem to start cycling
through red-green-blue-orange-purple and some more colours at a fairly high
rate so the operator your alarm woke up will INSTANTLY see which value is out
of range and can start fixing it immediately.
You don't want to pop up a dialog - clicking ok means it takes longer before
he starts adjusting the parameters, but you MUST highlight THAT specific
element in a way that should NEVER happen otherwise.
The element may be a TEdit on a tgroupbox. Now if an emergency exists and you
start colour-flashing the tgroupbox to draw attention to the RIGHT tedit but
a theme overrides your colour calls so it doesn't flash and the whole town is
flattened before the operator finds the right value (he cannot fix the
problem until he knows WHAT the problem is) - well the whole theory just went
up in smoke (as did the town).
In a non computerized nuclear power station, a big LED would have flashed
below the dial with the out of sync value, in a computerized version you HAVE
to find a way of getting exactly the same kind of notification and theme must
not prevent you from doing it, especially since computerising has so many
other usefull advantages (a computer could solve simpler cases itself, like
automatically increasing cooling if the temperature rises by a few degrees)
in other words, a computerized interface is a good idea - but it MUST be able
to override the theme when needed.
Yes this is probably the most extreme example there is but it is a very real
one, and just because most of us are not coding nuclear reactor controls
doesn't mean that our reasons for occasionally having to FORCE colors or
fonts are not good ones.
A.J.
--
"there's nothing as inspirational for a hacker as a cat obscuring a bug
by sitting in front of the monitor" - Boudewijn Rempt
A.J. Venter
Chief Software Architect
OpenLab International
www.getopenlab.com
www.silentcoder.co.za
+27 82 726 5103
_________________________________________________________________
To unsubscribe: mail [EMAIL PROTECTED] with
"unsubscribe" as the Subject
archives at http://www.lazarus.freepascal.org/mailarchives