Zitat von
Punisher:
Ändere ich dann den Code im Konstruktor auf "font.Color := clred;" so sollte sich
das so auswirken, dass nach dem nächsten Kompilieren des Programmes, die Komponente rot dargestellt wird.
Das passiert nicht.
Nicht nur das Programm muß neu Kompiliert werden, sondern auch und vorallem das
Package,
denn von alleine kommt der geänderte Code da nicht rein und Packages werden nicht automatisch neu kompiliert.
Zitat von
Punisher:
Weiters sollte ein Neukompilieren des Packages sich so auswirken, dass die Komponente bereits
zur Designzeit rot auf dem Form dargestellt wird. Auch das passiert nicht. Erst wenn ich die Komponente neu auf dem Form
platziere wird sie rot dargestellt.
Das liegt wohl daran, daß in der .DFM die Farbe gespeichert wird, wenn sie vom Default abwicht.
Standarmäßig ist Default 0, also Schwarz.
wenn du es in der Komponente (im
Package änderst), dann existiert also noch die vorrangige Angabe in der
DFM (in den Formulardaten)
gib also in deiner Defnition das Default mit an, dann wird
A) die
DFM kleiner (da diese dann nimmer mit drinseht) und
B) er nimmt vermutlich dann den Wert, welchen du dort setzt (da er ja nicht mehr vom
DFM-Loader überschrieben wird)
Delphi-Quellcode:
TLabel1 = class(TLabel)
...
published
{ Published-Deklarationen }
property Color: TColor default clGreen;
end;
Achtung:
default setzt den Property nicht auf den Wert, sondern besagt nur, daß der Property-Wert nicht gespeichert werden soll, wenn er dem Default-Wert entspricht.