| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C++ Builder > Обработка щелчка мыши другим компонентом |
| Автор: ksili 1.2.2006, 10:40 | ||||||
| У меня поверх компонента TImage расположено несколько компонентов TShape, которые создаются динамически. Необходимо, чтобы при щелчке мыши на любом из TShape вызывался обработчик OnMouseUp компонента TImage и соответственно, чтоб переданные в него X и Y были координатами в TImage, а не в TShape. Я пробовал определить всем TShape обработчик OnMouseUp тот же, что и у TImage
Но при этом X и Y - координаты внутри TShape, и по ним определить какой TShape щёлкнули невозможно. Затем пробовал определить всем TShape одинаковый обработчик OnMouseUp
У функции MyClick аргументы как у стандартного обработчика
но при этом компилятор выдавал ошибку Cannot convert 'void (__fastcall*)(TObject*, TMouseButton, TShiftState, int, int)' to 'void (__fastcall * (__closure)(TObject*, TMouseButton, TShiftState, int, int))(TObject*, TMouseButton, TShiftState, int, int)' Как всё-таки назначить свою функцию в качестве обработчика, или обрабатывать нажатие обработчиком компонента TImage? Вообще всё это надо чтобы узнать по какому TShape кликнули |
| Автор: Artemon 1.2.2006, 12:12 | ||
Вставь этот кусок в обработчик отпускания мыши Image:
|
| Автор: ksili 1.2.2006, 12:32 |
| Artemon, cпасибо. Я чё-то не догадывался привести Sender к типу TShape, поэтому координаты верхнего левого угла получить не мог. Теперь мне X и Y вообще не нужны стали |