Как объединить TMainMenu, которые используют отдельные списки изображений, и сохранить правильные изображения для каждого пункта меню?

StackOverflow https://stackoverflow.com/questions/152405

  •  02-07-2019
  •  | 
  •  

Вопрос

У меня есть программа с двумя классами TForm, и к каждому из них я добавил TMainMenu.Затем я пытаюсь объединить их динамически во время выполнения.

Моя проблема заключается в том, что когда они объединяют элементы меню в объединенном в TMainMenu, теперь отображаются изображения, хранящиеся в списке изображений, в той форме, в которую они были объединены, а не изображения, хранящиеся в списке изображений их исходной формы.

Я делаю что-то неправильно?Есть ли обходной путь, чтобы пункты меню продолжали использовать список изображений в той форме, из которой они возникли?

Я использую объединенную форму в ряде проектов, иначе имел бы смысл использовать единый общий список изображений.

Если мне нужно что-то уточнить, пожалуйста, скажите.

Спасибо

Питер

Это было полезно?

Решение

Я справляюсь с этим следующим образом: создаю один список изображений в модуле данных, а затем добавляю его в каждую форму, чтобы они могли совместно использовать этот единый набор значков.

Другие советы

Некоторое время назад у меня была точно такая же проблема, но я также столкнулся с другими проблемами слияния меню, потому что мое приложение было MDI, поэтому я решил сделать все совершенно по-другому.

Однако вы можете попробовать динамически добавлять изображения одной формы в ImageList другой формы и «перенаправлять» ImageIndexэс.Возможно, это немного сложно, но должно сработать.

В конечном итоге я получил использование Панель инструментов2000 пакет для всех моих меню и панелей инструментов.Затем вы можете загрузить очень хороший фрагмент кода под названием TB2Объединить, который делает именно то, что вы хотите.Он также использует некоторую инфраструктуру Toolbar2000 для связи изображения пункта меню с другим изображением. TImageList --- инфраструктура, которой нет в TMainMenu VCL.Обязательно внимательно прочитайте документацию TB2Merge!

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top