Ik heb een component gemaakt, wat gebaseerd is op de TDBEdit component. Ik heb daar wat kleurtjes aan toegevoegd die in design-time moeten kunnen worden ingesteld en die ook een default-waarde moeten hebben.
Ik probeerde het volgende in de header file (ik gebruik C++Builder 5):
Het probleem is dat de default kleur at design time toch gewoon zwart is.
Ik kan dat fixen door in de constructor alsnog de kleur in te stellen:
Dan zie je at design time de juiste kleur, maar als je die verandert werkt het niet. At runtime krijg je dan alsnog clWindow.
Hoe krijg ik dit goed? Een constuctor wordt toch maar 1 keer aangeroepen?
Of zowel bij design-time als bij run-time? Zo ja, kan je dan de code conditioneel laten uitvoeren?
Ik probeerde het volgende in de header file (ik gebruik C++Builder 5):
C++:
1
2
3
4
5
| private: TColor FColorRW; __published: __property TColor ColorRW = { read=FColorRW , write=FColorRW , default=clWindow }; |
Het probleem is dat de default kleur at design time toch gewoon zwart is.
Ik kan dat fixen door in de constructor alsnog de kleur in te stellen:
C++:
1
2
3
4
5
| __fastcall THneDBEdit::THneDBEdit(TComponent* Owner) : TDBEdit(Owner) { ColorRW = clWindow; } |
Dan zie je at design time de juiste kleur, maar als je die verandert werkt het niet. At runtime krijg je dan alsnog clWindow.
Hoe krijg ik dit goed? Een constuctor wordt toch maar 1 keer aangeroepen?