| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > дубликат TMenuItem |
| Автор: Vit 6.2.2005, 06:06 |
| Есть меню, в нём есть пункт (типа TMenuItem естественно), надо в другом меню создать точно такой же пункт со такими же свойствами (Caption, tag, onClick и т.д.). По ряду причин в данном конкретном случае Action воспользоваться не получится... Есть способ это сделать как-то быстрее чем тупое приравнивание двух десятков свойств? PS. Уже когда писал топик понял, что скорее всего нет из-за свойства Shortcut которое вроде как логично должно быть уникальным, хотя я его как раз и не использую... Тем ни менее... может у кого есть какие мысли. |
| Автор: Pakshin A. S. 6.2.2005, 11:07 | ||
Теоритически можно так:
Но Parent - readonly Все получается только при удалении пункта ShowMes1 |
| Автор: Pakshin A. S. 6.2.2005, 11:46 | ||||||
| Итак, часть проблемы решена: Изменил Menus.pas:
Теперь со спокойной совестью можно написать вот такое:
Вроде работает... особо времени тестить не было... Теперь появилась другая проблема: При закрытии проги вылетает ошибка... как избежать пока не понял... Прикрепляю dcu "испорченного" модуля: Добавлено @ 11:54 Чтобы избежать ошибки при выходе из программы, нам надо удалить "братьев-близнецов":
|
| Автор: Alex 6.2.2005, 13:49 | ||
А вот, что вышло у меня:
|
| Автор: Alex 6.2.2005, 13:54 |
| Пример использования: |
| Автор: Sharl 6.2.2005, 15:00 |
| А если использовать Destination.Assign(Source); ??? |
| Автор: Vit 6.2.2005, 15:07 | ||
А если попробовать? |
| Автор: Alex 6.2.2005, 16:41 | ||
Ну попробуй |
| Автор: Sharl 6.2.2005, 20:10 | ||||
Ой
|
| Автор: Pakshin A. S. 6.2.2005, 20:14 |
| Вот об этом и говорил Vit, что приходится перебирать свойства... |
| Автор: Guest 8.2.2005, 13:11 | ||
прежде всего логично, что уникальным должен быть HANDLE иначе выскочит ошибка "Menu inserted twice" из чего следует что два ОДИНАКОВЫХ пункта в меню быть не может, только с некоторыми совпадающими свойствами. То есть придется создавать новый пункт меню и копировать необходимые свойства вручную. |
| Автор: Pakshin A. S. 8.2.2005, 21:18 |
| А вот гость и не прав!!! Эта ошибка вылетает только тогда, когда в процедуре Insert FParent не равно nil... что я собственно и подправил... Вооще-то, мой исковерканный стандартный можуль вроде хорошо дублирует менюшки... вроде все работает... только есть небольшие проблемы при закрытии (см. выше) Кстати, никому эта идея не понравилась, ибо нет скачиваний... |
| Автор: Vit 9.2.2005, 07:19 | ||||
Править VCL - это самое крайнее средство, уж лучше перебором...
А почему вы так уверены что мне только эти свойства и события понадобятся? Там их гораздо больше.... |
| Автор: Alex 24.6.2005, 04:35 |
| В арсенале доступна обновленная версия процедуры для копирования свойств и методов одного компонента в другой http://forum.vingrad.ru/index.php?showtopic=21411&view=findpost&p=450550 |