Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

OnClick динамического объекта не видит себя-же

315
23 октября 2015 года
Nick_M
399 / / 29.05.2003
Есть класс, содержащий динамический StringGrid. Пытаюсь создать обработчик OnClick.
Код:
//--------------H-file----------------

class Integrate
{
private:
    TComponent* Owner;
public:
    Integrate(TComponent *Owner);
    ~Integrate();
    TStringGrid *sgIntgr;
    void SetParent(TWinControl* Parent);
    void sgIntgrClick(TObject *Sender);
};


//-------------CPP-file---------------

Integrate::Integrate(TComponent *Owner)
{
    this->Owner = Owner;
    sgIntgr = new TStringGrid(this->Owner);
    sgIntgr->Name = "TEST";
    sgIntgr->OnClick = TNotifyEvent(&sgIntgrClick);
}
//---------------------------------------------------------------------------

Integrate::~Integrate()
{
    delete sgIntgr;
}
//---------------------------------------------------------------------------

void Integrate::SetParent(TWinControl* Parent)
{
    this->sgIntgr->Parent = Parent;
}
//---------------------------------------------------------------------------

void Integrate::sgIntgrClick(TObject *Sender)
{
    try {
        ShowMessage(this->sgIntgr->Name);
    } catch (...) {
    }
}
Есть тестовая форма
Код:
//--------------H-file----------------

class TForm1 : public TForm
{
__published:    // IDE-managed Components
    void __fastcall FormShow(TObject *Sender);
private:    // User declarations
    Integrate *intgr;
public:     // User declarations
    __fastcall TForm1(TComponent* Owner);
    __fastcall ~TForm1();
};


//-------------CPP-file---------------

__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
    intgr = new Integrate(this);
}
//---------------------------------------------------------------------------

__fastcall TForm1::~TForm1()
{
    delete intgr;
}
//---------------------------------------------------------------------------

void __fastcall TForm1::FormShow(TObject *Sender)
{
    intgr->SetParent(this);
    ShowMessage(intgr->sgIntgr->Name);
}
//---------------------------------------------------------------------------
Обработчик FormShow видит StringGrid и выводит его имя.
Обработчик-же sgIntgrClick при щелчке - StringGrid'а не видит как будто бы его не существует!
Никак не могу понять в чем дело
315
23 октября 2015 года
Nick_M
399 / / 29.05.2003
Решение найдено
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог