Die Frage ist interessant und ich habe sie mir auch schon gestellt.
Siehe z.B.
hier unter #4.
Grundsätzlich muss man die Datenebene und die
GUI (Formularkomponenten) trennen.
Du musst also eine Datenebene (ggf. einfach eine Datenbank) haben und dort den Wert "Color" speichern.
Dann muss es natürlich eine Datenbindung der
GUI an diese Datenschicht geben. Die
GUI muss informiert werden, wenn es neue bzw. geänderte Daten gibt.
Im einfachsten Fall holt sich der Client die Daten zyklisch ab. Das ist aber natürlich keine effektive Lösung.
Wenn man die Daten nicht auf einen Farbwert begrenzt, sondern dort tausende Kunden, Bestellungen und Rechnungen verwaltet und wenn man im Client auf diese Daten über Objekte zugreifen will, dann wird das Ganze natürlich deutlich aufwendiger.
Darüber hinaus müssen gleichzeitige (schreibende) Zugriffe von mehreren Clients verhindert werden.
ORM´s wie mORMot, DORM oder Aurelius sollen einem diese Arbeit abnehmen.
Hilfreich ist dann natürlich, wenn man ein Databinding zwischen den Objekten und der
GUI nutzen kann.
Je größer das Projekt wird, um so anspruchsvoller wird wohl eine entsprechende Umsetzung (vom Zeitverhalten her).
Ich würde mir wünschen, dass Delphi hier ein "Rundum-Sorglos-Paket" an Bord hätte. Mit den ganzen Dingen will ich mich demnächst näher befassen....
(EDIT: Ich bin davon ausgegangen, dass es nicht wirklich darum ging, einzelne Werte auszutauschen, sondern eine gemeinsame (umfangreiche) Datenbasis zu nutzen.)