Форум: "Потрепаться";
Текущий архив: 2005.11.20;
Скачать: [xml.tar.bz2];
ВнизПлагины и менюшки! Найти похожие ветки
← →
WondeRu © (2005-10-31 13:44) [0]Здравствуйте!
Разрабатываю ПО с поддержкой плагинов, но вот возникла проблема: как создать меню из плагина?
В главной программулине есть спец менюшка, в которую плагины могут пихать все что душе угодно. Только вот как запихать???
Программулина написана на Delphi, плагины - неважно на чем.
Какое более элегантное решение посоветуете?
Заранее спасибо!
← →
jack128 © (2005-10-31 14:02) [1]да как угодно. Например, если плагин хочет добавить меню, то он должен экспортировать функцию function CreateMenuItem(hMenu: HMENU): HRESULT; в которую ты из основного приложения передаешь хендл родительского итема..
← →
Opilki_Inside © (2005-10-31 14:06) [2]Да очень просто... каждый плагин должен обладать одним и тем же интерфейсом.. интерфейс - это набор функций для вазимодействия плагина с программой.. одной из подобных функций должна быть функция, которая возвращает имя этого плагина... так вот допустим у тебя плагины лежат в поддиректории \pluigins , тогда ты пробегаешься по всем dll, которые лежат в этой директории и вызываешь эту функцию, и так заполняешь свою "спец. менюшку".. или что они должны пихать? в описанном случае они должны пихать туда свое название... ну а если нужно форму запихнуть, то они должны вернуть тебе какой-нибудь TFrame...
← →
GuAV © (2005-10-31 14:11) [3]См. что реализует IContextMenu.
← →
WondeRu © (2005-10-31 14:15) [4]Opilki_Inside © (31.10.05 14:06) [2]
как бы похожая реализация: все сделано через COM интерфейс... А вот пихать надо меню с вложениями... да притом произвольное...
ну а если нужно форму запихнуть, то они должны вернуть тебе какой-нибудь TFrame...
уже делается, но через Active Form...
jack128 © (31.10.05 14:02) [1]
Например, если плагин хочет добавить меню, то он должен экспортировать функцию function CreateMenuItem(hMenu: HMENU): HRESULT;
есть такая приблудина у меня:
procedure TPluginXXX.Set_MenuHandle(Value: Integer);
begin
FMenuHandle := Value;
AppendMenu(Value, MF_INSERT, pmCustom.Items[0].Handle,
PChar(pmCustom.Items[0].Caption));
end;
но она ничерта не добавляет :(
← →
WondeRu © (2005-10-31 14:19) [5]GuAV © (31.10.05 14:11) [3]
См. что реализует IContextMenu.
можно подробнее? примерчик хотя бы... а то в делфи кроме самого объявления интерфейса ничего нет
← →
GuAV © (2005-10-31 14:39) [6]
> примерчик хотя бы...
($Delphi)\Demos\ActiveX\ShellExt\contmenu.dpr
Но я не про его использование, а про реализацию чего-то подобного.
Этот интерфейс реализует возможность добавление менюшек к конт. меню проводника. Т.е. похоже на рассматриваемый случай.
← →
WondeRu © (2005-10-31 18:21) [7]проблема решилась довольно просто: н стороне плагина формируется XML с описанием менюшки (название, id-события). В главной программе по этой XMLине строится меню... и усе)))
Страницы: 1 вся ветка
Форум: "Потрепаться";
Текущий архив: 2005.11.20;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.051 c