C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 Здравствуйте, гость ( Вход | Регистрация )   Скачать форум | Поиск по Форуму | Участники | Помощь
 Поиск по:   сайтy   
   архиву форума   
  ОтветитьНовая темаНовый опрос
Привязка обработчика события TStringGrid, привязать обработчик события к динамичес
« предыдущая тема | следующая тема » Подписаться на тему | Отправить тему на E-mail | Распечатать тему
VilgelmKaizer
  Отправлено: 13.07.2010, 17:53 Цитировать


Дежурный стрелочник


Группа: Участник
Сообщений: 38
Пользователь № 2481
Регистрация: 02.10.06



добрый день уважаемые знатоки.

Вопрос у меня такой(по C++ Builder 6):
Есть такой класс гридов TStringGrid и у него есть событие OnDrawCell - возникает при перерисовке ячеек(типа, это общеизвестно).
Когда создаешь объект такого класса динамически - то возникает вопрос как привязать самодельный обработчик события к объекту.

создать нужно динамически в момент выполнения несколько штук, т.е. на этапе компиляции не известно кол-во обьектов.\
Поэтому сделать их элементами класса формы не получиться и использовать способ типа
CODE
StringGrid1->OnDblClick = MyFunc();

тоже не получиться т.к. MyFunc() не член класса формы.

Решение я нашел и оно работает - через TMethod
т.е.
есть функция обработчик
CODE
void __fastcall LexDraw(void* This, TObject* Sender, int ACol, int ARow, TRect& Rect, TGridDrawState State)
- самописный обработчик

далее создаем объект грид
CODE

TStringGrid* GG = new TStringGrid(...)


//--- далее привязываем
TMethod Method_OnDrawCell; //-- создаем объект тметод

Method_OnDrawCell.Data = GG; // привязываем к нему наш GG

Method_OnDrawCell.Code= LexDraw; // привязываем к нему функцию обработчик

GG->OnDrawCell = *(TDrawCellEvent*)&Method_OnDrawCell;

в последней строчке видно что объект тметод преобразуется в некоторый тип TDrawCellEvent.

Собственно вопросы:
1.как ЭТО(TDrawCellEvent) называется чтобы можно было про него почитать в хелпе.
2.какой тип аналогичный TDrawCellEvent нужно использовать чтобы можно было привязать самодельный обработчик событию OnDblClick того же грида.

Прошу прощения если написано коряво.

Отредактировано VilgelmKaizer - 13.07.2010, 20:03
 
Послать сообщение E-mail адрес  Top
VilgelmKaizer
Отправлено: 27.07.2010, 19:49 Цитировать


Дежурный стрелочник


Группа: Участник
Сообщений: 38
Пользователь № 2481
Регистрация: 02.10.06



короче разобрался это TNotifyEvent. мать его за ногу.

обсуждение и баталии тут:http://sql.ru/forum/actualthread.aspx?tid=774096&pg=-1

 
Послать сообщение E-mail адрес  Top
1 ответов с: 13.07.2010, 17:53 Подписаться на тему | Отправить тему на E-mail | Распечатать тему

Back to Вопросы программирования в C++Builder
ОтветитьНовая темаНовый опрос