Du musst deine Setter anpassen, das mit ihnen auch Color 3 neu berechnet wird, was ja Colorize macht:
Delphi-Quellcode:
procedure TColorMixer.SetColor1_Original(Value: TColor);
begin
if Value<>FColor1_Original then
begin
FColor1_Original:=Value;
FColor3_Result:=Colorize;
end;
end;
Der Setter für Color 3 macht keinen Sinn, da Color drei ja nicht gesetzt werden soll, sondern nur berechet, was ja jetzt die Setter machen, wenn du sie wie oben änderst. Also weg mit
SetColor3_Result(Value: TColor)
und natürlich die property entsprechend anpassen.
[Edit]
Bummi war schneller. Kann ich aber gleich selber eine Frage anschieben:
...oder besser den den Getter der ReultFarbe geich an Colorize hängen
Ich würde das so interpretieren, dass es das Feld/Attribut für Color3 gar nicht geben muss, sondern nur eine "read only property" Color3, die jeweils berechnet wird. Also nur das Ergebnis von Colorize zurückliefert. Ginge das auch? In einer normalen Klasse denk ich mal ja, aber auch bei etwas das im Objektinspektor angezeigt wird? Werden da Aktualisierungen einer der anderen Farben direkt weitergereicht?