![]() |
|
Модераторы: Snowy, MetalFan, bems, Poseidon |
![]()
|
|
| AlexeyShestchenko |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 59 Регистрация: 7.2.2008 Репутация: нет Всего: нет |
Понадобилось прикрутить к приложению плагины для возможности разширения функционала.
Сначала опишу задачу, потом о проблеме. Т.к. мне не нужна загрузка плагинов при создании формы, то список плагинов находится в файле и загружается stringlist; В каждом плагине должно быть по 1-3 функции, все они работают с текстом который получают(должны получать) из программы и возращают обработанный вариант в memo. Функции все готовы осталось только организовать работу с плагинами. В edit программы пишется название плагина через пробел текст и параметры обработки. Поскитался по инету в надежде найти исходники и примеры по работе с плагинами,но они что-то все плохо рабочие. Например:
и Dll:
после показа мессаги выскакивает в дебаггер :( Как я понимаю, то программа должна обрабатывать текст взятый из эдита, первое слово будет название плагина,дальше она должна отадавать плагину текст с параметрами обработки, тот в свою очередь обрабатывает и отправляет в memo программы. Нужна возможность указывать вместо текста ссылку на файл,тогда обрабьотка будет занимать некоторое время,знач над делать еще и возможность в потоке. Помогите разобраться! Буду благодарен! |
||||
|
|||||
| Qu1nt |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 602 Регистрация: 13.1.2007 Репутация: 22 Всего: 50 |
Вот так будет правильней:
|
|||
|
||||
| ivan219 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1121 Регистрация: 19.11.2005 Где: Планета земля Репутация: 5 Всего: 12 |
И ещё помойму нужно в uses провисать ShareMem только надо его прописывать не в юнете формы а в файле проекта.
|
|||
|
||||
| AlexeyShestchenko |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 59 Регистрация: 7.2.2008 Репутация: нет Всего: нет |
с использованием sharemem вылетает ошибка на выхохе,чето там invalid pointer |
||||
|
|||||
| Qu1nt |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 602 Регистрация: 13.1.2007 Репутация: 22 Всего: 50 |
Мой вариант не работает?
|
|||
|
||||
| AlexeyShestchenko |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 59 Регистрация: 7.2.2008 Репутация: нет Всего: нет |
твой работает,спасибо! |
|||
|
||||
| Rennigth |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1708 Регистрация: 21.6.2004 Где: Moscow Репутация: 15 Всего: 76 |
Это для использования стрингов. -------------------- (* Honesta mors turpi vita potior *) |
|||
|
||||
| AlexeyShestchenko |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 59 Регистрация: 7.2.2008 Репутация: нет Всего: нет |
function GetText(Text:String): PChar; stdcall;
var i:integer; begin for i:=0 to 20 do Result := PChar(text+inttostr(i)); end; эта функция возращает text+20 а мне надо чтобы возращала все от 0 до 20,как сделать? |
|||
|
||||
| THandle |
|
|||
![]() Хранитель Клуба Награды: 1 Профиль Группа: Админ Сообщений: 3639 Регистрация: 31.7.2007 Где: Moscow, Dubai Репутация: 50 Всего: 372 |
AlexeyShestchenko, так пойдет?
Это сообщение отредактировал(а) THandle - 19.2.2008, 20:38 |
|||
|
||||
| AlexeyShestchenko |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 59 Регистрация: 7.2.2008 Репутация: нет Всего: нет |
спасибо, это я для теста сделал простой алгоритм, а если там довольно тяжелоемкий анализ и результаты будут не сразу,хотелось бы чтобы по мере получения одного из результов они уже появлялись в результе и я мог видеть это дело у себя в программе в memo!
|
|||
|
||||
| aktuba |
|
|||
![]() Смышленный ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1915 Регистрация: 24.4.2006 Где: Планета Земля Репутация: 7 Всего: 38 |
AlexeyShestchenko, используй WideString и забудь о PChar... И никаких дополнений в uses прописывать не надо.
-------------------- ![]() |
|||
|
||||
| source777 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1878 Регистрация: 12.3.2007 Репутация: нет Всего: 56 |
-------------------- Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте |
|||
|
||||
| AlexeyShestchenko |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 59 Регистрация: 7.2.2008 Репутация: нет Всего: нет |
спасибо, но предыдущую тему не могу решить
|
|||
|
||||
| remax |
|
|||
|
Доцент ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 686 Регистрация: 7.4.2002 Где: Украина, Харьков Репутация: нет Всего: 5 |
JEDI VCL - фореве!
Там есть готовая реализация механизма плагинов и 5 (!) работающих примеров. Охватываю самые разные варианты реализации. Насчет ShareMem: обсуждалось на форуме, например - http://forum.vingrad.ru/faq/topic-157676.html Это сообщение отредактировал(а) remax - 19.2.2008, 23:05 -------------------- Как бы ты не старался быть хорошим и правильным человеком с принципами и уважительным отношением к другим, всегда найдется кто-то, кто бросит в тебя какашку |
|||
|
||||
| AlexeyShestchenko |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 59 Регистрация: 7.2.2008 Репутация: нет Всего: нет |
JEDI VCL, чет не нашел там примера по плагинам...
может не то скачал.... source777, вот для примера решил засунуть в длл idicmpclient, длл принимает хост и начинает пинговать его. Разумеется в главное приложение должен приходить ответ о том как дошли пакеты. пишу в длл:
вроде правильно возращает результат,но если нажимать дальше на кнопку,то будет добавляться одно и тоже значение почему? |
|||
|
||||
![]()
|
| Правила форума "Delphi: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |