C++Builder

Вопросы программирования => Общие вопросы программирования в C++Builder => Тема начата: Sergey1985 от 07 Июнь 2018, 10:54:23



Название: Вызов метода при изменении свойства.
Отправлено: Sergey1985 от 07 Июнь 2018, 10:54:23
Добрый день. Пытаюсь написать что то похожее на VCL но только для консоли. Предположим есть класс
(многое убрал пока из него чтоб не мешалось)
class TLabel
{
   public:
   char Caption[255];
   unsigned char TextColor;
  void SetTextColor(unsigned char color);
};

void TComponent::SetTextColor(unsigned char color)
{
    TextColor = color;
    textcolor(TextColor);
    cprintf(Caption,"%s");
};

после инициализации

TLabel *l;
int main()
{
   l = new TLabel();
 
}
нужно чтобы при изменении свойства
l->TextColor = RED;
вызывался автоматически метод
SetTextColor(unsigned char color); с TextColor в качестве аргумента т.е.
SetTextColor(TextColor);

Возможно ли такое реализовать?
Смотрел в сторону перегрузки операторов но мне кажется что это не то.



Название: Re: Вызов метода при изменении свойства.
Отправлено: OVE от 08 Июнь 2018, 14:37:23
Мне кажется как-то так:
Код:
class TMyClass
{
   private:
       int FMyColor;
   protected:

   void __fastcall SetMyColor(int NewColor){FMyColor=NewColor;
                                          // и что-то свое дописать можно};

   public:
  __property int MyColor={read=FMyColor, write=SetMyColor};

};


Название: Re: Вызов метода при изменении свойства.
Отправлено: Sergey1985 от 09 Июнь 2018, 08:54:38
Елки палки точно. Спасибо за ответ. ;D




.....
..