property... default

0

mam taki komponent:

  TZestawKolorow = class(TComponent)
  private
    fstOK:         TColor;
    fstOstrzeznie: TColor;
    fstAlarm:      TColor;
    fstError:      TColor;
    fstTimeout:    TColor;
    fGlowny1:      TColor;
    fGlowny2:      TColor;
    fGlowny3:      TColor;
    fGlowny4:      TColor;
  public
    function StatusColor(status: TStatus): TColor;
    procedure ZapiszKolory;
    procedure WczytajKolory;
  published
    property stOK:         TColor read fstOK          write fstOK         default clLime;
    property stOstrzeznie: TColor read fstOstrzeznie  write fstOstrzeznie default clLime;
    property stAlarm:      TColor read fstAlarm       write fstAlarm      default clLime;
    property stError:      TColor read fstError       write fstError      default clLime;
    property stTimeout:    TColor read fstTimeout     write fstTimeout    default clLime;
    property Glowny1:      TColor read fGlowny1       write fGlowny1      default clLime;
    property Glowny2:      TColor read fGlowny2       write fGlowny2      default clLime;
    property Glowny3:      TColor read fGlowny3       write fGlowny3      default clLime;
    property Glowny4:      TColor read fGlowny4       write fGlowny4      default clLime;
  end;

No i pieknie sie instaluje i wszystko gra...

ALE

po dodaniu komponentu na formularz w OI wszystkie kolorki sa czarne
Spodziewalem sie ze dzieki slowu default uda sie ustawic na stale jakis kolor...

0

default mówi tylko, które dane zapisywać do dfm a które nie. W Twoim przypadku - zapisuje się wszystko, co jest różne od clLime. O ustawienie odpowiednich kolorów musisz się zatroszczyć sam.

0

(do wypowiedzi wyżej) w konstruktorze

0
Misiekd napisał(a)

(do wypowiedzi wyżej) w konstruktorze

... przynajmniej w 99.99% przypadków - ale nie w 100% :)

0

ok

dodalem constructor'a i w nim ustawiam wartosci dla kolorow - teraz dziala.

TheBigStaticObject napisał(a)

... przynajmniej w 99.99% przypadków - ale nie w 100% :)

a kiedy nie?

0
Johny_Morfina napisał(a)

ok

dodalem constructor'a i w nim ustawiam wartosci dla kolorow - teraz dziala.

TheBigStaticObject napisał(a)

... przynajmniej w 99.99% przypadków - ale nie w 100% :)

a kiedy nie?

Oj, dzielenie włosa na czworo :) Można ustawiać w różnych miejscach, które są wołane w trakcie tworzenia obiektu - do wyboru, do koloru, SetBounds na przykład :) Ale oczywiście w większości przypadków to albo błąd albo chęć skomplikowania sobie życia - niemal zawsze jest tak jak napisał Misiek.

1 użytkowników online, w tym zalogowanych: 0, gości: 1