Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Создание компонента - потомка от TTaskbar, Создание потомка от TTaskbar 
:(
    Опции темы
Cepguo
Дата 13.8.2019, 01:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 8.12.2008

Репутация: нет
Всего: нет



Пишу компонент - потомок от TTaskbar:
Код

class PACKAGE TProgressTaskBar : public TTaskbar
{
protected:
private:
    TWinControl *Control;
    int __fastcall GetMax(void);
    void __fastcall SetMax(int Val);
    int __fastcall GetPosition(void);
    void __fastcall SetPosition(int Val);
public:
    __fastcall TProgressTaskBar(TComponent* Owner);
    __fastcall ~TProgressTaskBar(void);
__published:
    __property int Max = {read=GetMax,write=SetMax};
    __property int Position = {read=GetPosition,write=SetPosition};
};
//------------------------------------------------------------------------------
static inline void ValidCtrCheck(TProgressTaskBar *)
{
  new TProgressTaskBar(NULL);
}
//------------------------------------------------------------------------------
int __fastcall TProgressTaskBar::GetMax(void)
{
  return ProgressMaxValue;
}
//------------------------------------------------------------------------------
void __fastcall TProgressTaskBar::SetMax(int Val)
{
  ProgressMaxValue = Val;
}
//------------------------------------------------------------------------------
int __fastcall TProgressTaskBar::GetPosition(void)
{
  return ProgressValue;
}
//------------------------------------------------------------------------------
void __fastcall TProgressTaskBar::SetPosition(int Val)
{
  ProgressValue = Val;
}
//------------------------------------------------------------------------------
__fastcall TProgressTaskBar::TProgressTaskBar(TComponent* Owner):TTaskbar(Owner)
{
  Control = NULL;
  if(Owner)
  { Control = dynamic_cast<TWinControl *>(Owner);
    if(Control)
    { Control->InsertComponent(this);
    }
  }
  ProgressState = TTaskBarProgressState(TBPF_NORMAL);
}
//------------------------------------------------------------------------------
__fastcall TProgressTaskBar::~TProgressTaskBar(void)
{
  if(Control)
  { Control->RemoveComponent(this);
    Control = NULL;
  }
}
//------------------------------------------------------------------------------
namespace Progresstaskbar
{
  void __fastcall PACKAGE Register()
  {
    TComponentClass classes[1] = {__classid(TProgressTaskBar)};
    RegisterComponents(L"Samples", classes, 0);
  }
}
//------------------------------------------------------------------------------

Далее, в теле программы создаю:
Код

TProgressTaskBar *ProgressTaskBar = new TProgressTaskBar(this);
ProgressTaskBar->Max = 100;

Потом, в цикле наращиваю ProgressTaskBar->Position++;
Результат нулевой - ничего не происходит с иконкой приложения.
Если вместо этого на форму бросить компонент TTaskbar и то же самое проделать с ним:
Код

TaskBar->ProgressMaxValue = 100;
TaskBar->ProgressState = TTaskBarProgressState(TBPF_NORMAL);
TaskBar->ProgressValue++;

то всё OK !
В конце концов выяснилось, что при создании формы для компонента TaskBar вызываются:
Perform(RM_TaskBarButtonCreated, 0, 0),
TaskBar.RegisterTab(LHandle),
чего не происходит с моим TProgressTaskBar *ProgressTaskBar = new TProgressTaskBar(this);
вопрос: как создавать экземпляр потомка ?
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0945 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.