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

 
Проблемы с перетаскивание компонентов, где писать обработчик события?
Андрей А.
Отправлено: 19.10.2005, 06:32


Не зарегистрирован







Добрый день, подскажите пожалуйста каким образом можно организовать перетаскивание в окне приложения программно созданных меток, при условии что ни одной метки до этого на форме не было. Вообще как писать обработчики событий для программно созданных компонентов?
Valdemar
Отправлено: 19.10.2005, 07:52


Мастер участка

Группа: Участник
Сообщений: 433



Перетаскивать можно так:
- в обработчике события OnMouseDown запоминаем начальные координаты (x0, y0) и устанавливаем флаг перетаскивния;
- в обработчике события OnMouseMove если флаг установлен, то изменяем позицию левого и верхнего края
Label->Left=Label->Left+X-x0;
Label->Top=Label->Top+Y-y0;
- в обработчике события OnMouseUp сбрасываем флаг.

Чтобы назначить обработчик события компоненте надо сначала написать функцию, которая будет обрабатывать событие. Ее прототип должен совпадать с прототипом обработчика этого события. Затем назначаете эту функцию в качестве обработчика события:
mycomp->OnMouseUp=MyMouseUp;
Gal
Отправлено: 20.10.2005, 10:51


Станционный диспетчер

Группа: Участник
Сообщений: 124



Организация обработки событий дин. соз. компонента.
Например кнопка.
создаешь кнопку и обработку события этой кнопки , например OnClick
Затем удаляешь эту кнопку.
в программе дин. создаешь кнопку например Button1 и по созданию пишешь
Button->OnClick = OnClick;
После этого дин. созданная кнопка будет иметь событие OnClick/
Gal
Отправлено: 20.10.2005, 10:53


Станционный диспетчер

Группа: Участник
Сообщений: 124



Button1->OnClick = OnClick;
Doga
Отправлено: 20.10.2005, 16:31


Мастер участка

Группа: Участник
Сообщений: 575



А разве события типа OnDrag..., OnDock... это не то что нужно?
Андрей А.
Отправлено: 21.10.2005, 09:23


Не зарегистрирован







Спасибо за ответы, затруднение вызывало именно то каким образом ь обработчик присваивать событию динамически созданного компонента.

Вернуться в Вопросы программирования в C++Builder