Как объединить TMainMenu, которые используют отдельные списки изображений, и сохранить правильные изображения для каждого пункта меню?
-
02-07-2019 - |
Вопрос
У меня есть программа с двумя классами TForm, и к каждому из них я добавил TMainMenu.Затем я пытаюсь объединить их динамически во время выполнения.
Моя проблема заключается в том, что когда они объединяют элементы меню в объединенном в TMainMenu, теперь отображаются изображения, хранящиеся в списке изображений, в той форме, в которую они были объединены, а не изображения, хранящиеся в списке изображений их исходной формы.
Я делаю что-то неправильно?Есть ли обходной путь, чтобы пункты меню продолжали использовать список изображений в той форме, из которой они возникли?
Я использую объединенную форму в ряде проектов, иначе имел бы смысл использовать единый общий список изображений.
Если мне нужно что-то уточнить, пожалуйста, скажите.
Спасибо
Питер
Решение
Я справляюсь с этим следующим образом: создаю один список изображений в модуле данных, а затем добавляю его в каждую форму, чтобы они могли совместно использовать этот единый набор значков.
Другие советы
Некоторое время назад у меня была точно такая же проблема, но я также столкнулся с другими проблемами слияния меню, потому что мое приложение было MDI, поэтому я решил сделать все совершенно по-другому.
Однако вы можете попробовать динамически добавлять изображения одной формы в ImageList другой формы и «перенаправлять» ImageIndex
эс.Возможно, это немного сложно, но должно сработать.
В конечном итоге я получил использование Панель инструментов2000 пакет для всех моих меню и панелей инструментов.Затем вы можете загрузить очень хороший фрагмент кода под названием TB2Объединить, который делает именно то, что вы хотите.Он также использует некоторую инфраструктуру Toolbar2000 для связи изображения пункта меню с другим изображением. TImageList
--- инфраструктура, которой нет в TMainMenu VCL.Обязательно внимательно прочитайте документацию TB2Merge!