Einzelnen Beitrag anzeigen

Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.736 Beiträge
 
Delphi 6 Enterprise
 
#18

AW: Komponente: noch grün hinter den Ohren

  Alt 11. Feb 2011, 08:35
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?
Ralph

Geändert von Jumpy (11. Feb 2011 um 08:42 Uhr)
  Mit Zitat antworten Zitat