Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.06.27;
Скачать: [xml.tar.bz2];

Вниз

Динамическое меню и панели инструментов...   Найти похожие ветки 

 
AlexG ©   (2004-06-13 16:19) [0]

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


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

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


 
GuAV ©   (2004-06-14 01:13) [2]


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

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


 
Cobalt ©   (2004-06-14 01:16) [3]

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

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


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

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


 
GuAV ©   (2004-06-14 01:29) [5]


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

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


 
default ©   (2004-06-14 01:37) [6]

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


 
AlexG ©   (2004-06-14 10:52) [7]

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



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2004.06.27;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.032 c
3-1086254751
Aladin
2004-06-03 13:25
2004.06.27
IBQuery.CachedUpdates


14-1086514388
SilPoc
2004-06-06 13:33
2004.06.27
Служба сообщений на службе у спамеров


3-1086241896
Litr
2004-06-03 09:51
2004.06.27
Поиск по дате


1-1086876686
Asdor
2004-06-10 18:11
2004.06.27
Конструктор формы и Reintroduce


1-1087298316
Apocalepse
2004-06-15 15:18
2004.06.27
Как сделатть свою программу поверх всех окон





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский