|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
21.01.2008, 09:50 | #11 |
Android Developer
Старожил Подтвердите свой е-майл
Регистрация: 19.02.2007
Сообщений: 3,708
|
Итак вот сделал пример вроде все работает.
Ну там права и т.п. учтите ок ? Просто коды личные Код:
Код:
Да возможно Вы спросите зачем всякие GetID и т.п. таким образом я проверяю что это мой плугин, а не библиотека какая еще stdcall - я привык, для более высокой совместимости в WinNT. Ну как помог ? Последний раз редактировалось Stilet; 18.09.2009 в 14:43. |
22.01.2008, 21:06 | #12 |
Пользователь
Регистрация: 20.01.2008
Сообщений: 24
|
Благодарю, что потратили на меня время. В принципе я так и сделал, только не прописывал все эти функции (GetFirst, Get(index: Integer):Pointer или там TMenuItem) в DLL, потому что библиотеку нужно писать быстро, библиотек может быть несколько и для каждой требовать, чтобы в ней были все эти обработчики для работы с меню - просто нежедательно, хлтелось, чтобы в DLL просто разместил меню и ВСЁ, пиши функционал и не парься с тем, что еще придется связывать DLL с какой-то внешней прогой.
Я, воспользовавшись вашей идеей просто сделал в проге прошаривание всех жлементов меню в проге и построение новых элементов, в точности вот как у вас, только не по структуре (то есть списку), а по дереву меню. За идею кстати Спасибо. Но единственное, что не понравилось в моей реализации: Передаю из DLL указатель на меню, а в проге прошариваю все это меню рекурсивно, создавая новые MenuItem, назначая им те же имена, заголовки и указатели на обработчики событий (Name, Caption, OnClick). Однако при удалении элементов меню в момент закрытия приложения (MenuItem.Free) возникает исключение непонятное, причем избежать такого эффекта можно (как неожиданно выяснил опытным путем ) изменением имен и заголовков элементов меню - не странно ли, как вы считаете? Например, имя было mCommand1, меняем на mCommand1i и все, без проблем. Я сам удивлен был этому, всегда думал, что в Delphi не нужно заморачиваться с кодом, чтобы все работало без ошибок. А вот почему происходят такие чудеса при просто добавлении (а не создании новых копий) элементов меню (из DLL) в меню программы - это мне вообще не понятно, матрица какая-то с агентом Смитом... |
22.01.2008, 22:03 | #13 |
Android Developer
Старожил Подтвердите свой е-майл
Регистрация: 19.02.2007
Сообщений: 3,708
|
Вот поэтому я нехочу "наоборот" замарачиваться с VCL + кто Вам мешает основные функции обработки так же положить в dll из которой все плугины черпали основы как Api Все идеально будет работать, как в примере. Вообщем решаете ?!
|
22.01.2008, 22:31 | #14 | |
*
Старожил
Регистрация: 22.11.2006
Сообщений: 9,201
|
Цитата:
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Создание вкладки. | фЁдОр | Общие вопросы Delphi | 10 | 11.02.2008 16:27 |
Создание dll | John_chek | Общие вопросы Delphi | 3 | 24.09.2007 14:26 |
Помогите с разработкой приложения с поддержкой плагинов. | krik | Общие вопросы Delphi | 3 | 17.06.2007 13:40 |
Написание программ или плагинов для тюнера Behold TV | СТРАННИК | Общие вопросы Delphi | 0 | 29.01.2007 09:54 |