Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Динамическое меню и панели инструментов... [D7, WinXP]


AlexG ©   (2004-06-13 16:19:00) 

Плохо себе представляю, как осуществить следующее. У меня есть главная форма. В DLL хранится дочернее окно, осуществляющее некоторые функции. Для удобства пользователя мне нужно вывести эти функции в панель инструментов и в меню. Но появиться эти элементы должны только в случае открытия дочерней формы. Так вот. Где мне хранить эту панель инструментов? И где хранить элементы меню? Пока напрашивается такой подход: я храню это все в главной форме, но процедуры обработки описаны в DLL; когда я открываю дочернее окно, то мои динамические элементы становятся видимыми, а когда закрываю окно - я их прячу. Правилен ли будет такой подход? Может нужно хранить эти элменты в DLL? Но тогда я не представляю как их вставлять в главную форму...
Пожалуйста, помогите разобраться с этой проблемой.


AlexG   (2004-06-14 10:52:00) [1]

В общем, такой вывод напрашивается: без COM-технологии нормальное меню не сделать. Так?
Спасибо за помощь. :)


default   (2004-06-14 01:37:00) [2]

"Правда, за это придётся платить - изучать COM-технологию."
её изучать одно удовольствие


GuAV   (2004-06-14 01:29:00) [3]


> Кстати, мой способ "лучше", чем у GuAV ©  

Я не называл конкретного способа, а просто начал перечислять различные возможности :) Но твой лучше без кавычек. А ещё лучше - взаимодействие через хендлы и мессаги - привязка не к Дельфи а к WinAPI, который не зависит от языка и совместим с другими версиями себя.


Cobalt   (2004-06-14 01:19:00) [4]

Кстати, мой способ "лучше", чем у GuAV ©   тем, что позволит писать такие плагины на любом языке и в любой версии Дельфи, а не только в той, что написана твоя прога.
Правда, за это придётся платить - изучать COM-технологию.


Cobalt   (2004-06-14 01:16:00) [5]

Первое, что приходит на ум - использовать интерфейсы.
Типа как плагин - загружаешь длл-ку, получаешь её "интерфейс".
Он отвечает за окно, за панельки и т.п.

Интерфейс - потому что оторван от реализации, не надо будет описывать (именно) его в основной проге. Я так понимаю, что он скрывает конкретную реализацию в смысле на уровне типа класса не будет таких несостыковок, как: Описал в проге класс-родитель, в ДЛЛ-ке - класс-наследник. Используешь в проге наследника - получаешь AV.


GuAV   (2004-06-14 01:13:00) [6]


> Но тогда я не представляю как их вставлять в главную форму...

Запросто. Виртуальные конструкторы. Процедурные типы в качестве параметров dll. Передача длл-ке класса формы (var Form1: TForm1 имеется ввиду). Не понимаю, в чём могут быть трудности...
зы - не забудь про коментарий "по dll-wizard"


AlexG   (2004-06-14 00:11:00) [7]

Странно. Никто не занимался дизайном меню?


Наверх

Титульная страница Поиск, карта сайта Написать письмо