C++Builder
  Начало   Форум   Помощь Войти Регистрация  
Страниц: [1]   Вниз
  Печать  
Автор Тема: Вызов метода при изменении свойства.  (Прочитано 549 раз)
Sergey1985
Участник
**

Сказали спасибо: +8/-1
Offline Offline

Сообщений: 301


« : 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);

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

Записан
OVE
Участник
**

Сказали спасибо: +63/-0
Offline Offline

Сообщений: 70


« Ответ #1 : 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};

};
Записан
Sergey1985
Участник
**

Сказали спасибо: +8/-1
Offline Offline

Сообщений: 301


« Ответ #2 : 09 Июнь 2018, 08:54:38 »

Елки палки точно. Спасибо за ответ. Смеющийся
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  




....

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines
Страница сгенерирована за 0.037 секунд. Запросов: 22.