Если я тебя правильно понял, то:
TMenuItem принадлежит TPopupMenu, который, в свою очередь, принадлежит TBitBtn (или твоему какому либо классу)... Что в этом случае мешает тебе обратиться к свойствам конкретного TBitBtn через свойство Owner?
А вообще, прежде чем задавать вопросы, научись их формулировать...
И тот способ, который используешь ты, называется не иначе, как ИЗВРАЩЕНИЕ...
Я бы за такое расстреливал...
А зачем создавать для каждой кнопки своё меню???
Делаем одно меню, которое присваиваем каждой кнопке при создании(также сохраняем её номер в массиве в её совойстве Tag). В зависимости от того на какую кнопку нажали - генерим свои итемы и присваиваем им соответствующие действия. IMHO так проще и менее ресурсоёмко будет.
ZardoZ, у меня обработчик итак один на все кнопки... был трабл с передачей координат кнопки в этот обработчик, но используя (sender as TUnit).Owner я с этим справился...
вообще, ресурсоёмкость меня тут мало волнует - заказ не на скорость работы, а на правильность...
а вообще, у меня двумерный массив и в один Tag номер запихнуть - тож проблема геморная, тем более что координаты могут быть и отрицательными (ну, специфика такая...)
С хозяином объекта в твоём случае конечно проще, но очень советую как начинающему задумываться над _оптимизацией кода_.
А я бы, наверное, унаследовал класс, куда дополнительно ввёл две координаты и прочее. Затем генерил эти батоны и расставлял им координаты и итемы как я писал - создавал бы динамически на основе одного меню.
IMHO
по началу всегда кажется главное чтоб работало... а потом начинаешь понимать...
А как сравнивается интересно скорость работы программы и правильность? :) Вообще-то я просто говорю о более оптимальной IMHO реализации без потери качества.
ZardoZ, ну, TUnit=class(TBitBtn) - мой класс, там есть координаты. генерится всё нормально, но вот с меню были такие вот проблемы... просто в процедуру-обработчик для выбора пункта меню надо было координаты передать - я и извращался ) а через owner действительно проще вышло...