Программа написана на C++ Builder 2010;
Каким образом назначить событие для динамически созданного компонента - а именно
для OnMouseDown.
С событиями OnChange, OnClick, OnShow - типа TNotifyEvent все работает идеально через методы.
События типа TMouseEvent работать через методы не хотят.
Код такого вида так же не работает (компилируется но выкидывает ошибку - access violation):
void __fastcall MouseDownEvent(TObject *Sender, TMouseButton Button, TShiftState Shift,int X, int Y)
{
ShowMessage("Hello World");
}
CategoryLists->OnMouseDown = *(TMouseEvent*) & MouseDownEvent;
Вопрос: каким образом отловить нажатие клавиши мыши у динамически созданного компонента на форме?
Примечание:
Такой код не компилируется.
Выдает ошибку Cannot convert 'void (_fastcall *)(TObject *,TMouseButton,TShiftState,int,int)' to 'TMouseEvent'
Если тип функции выставить TMouseEvent - выдает другую ошибку.
Cannot convert 'TMouseEvent' to 'TMouseEvent'
Так что тут есть какой то косяк с приведением типов.
RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.
Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.
Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.