![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Динамическое меню и панели инструментов... [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]Странно. Никто не занимался дизайном меню?