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

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

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

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

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

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

Спасибо

Peter

Ответы [ 2 ]

8 голосов
/ 30 сентября 2008

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

3 голосов
/ 30 сентября 2008

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

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

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

...