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

Вниз

Проектирование взаимодействия плагина с программой   Найти похожие ветки 

 
Kolan ©   (2006-03-29 21:24) [0]

Здравствуйте,
 Есть готовая работающая программа, написаная мной. Она проводит измерение и складывает результаты в запись. Запись здаровая с дин массивами, строками итд...

 Появилась задача обработать эти данные иным способом. Для этого хочу использовать плагин на основе bpl. Причин этого несколько...

Вопрос в том как организовать связь плагина с программой.
Вижу несколько вариантов:
1. Сделать в плагине процедуру типа:
 procedure GiveRec(R: TRec);
И при получении результатов измерения вызывать её...
Минус в том, что придется все таки вносить в гл. программу изменения. И к томуже вдруг плагин захочет что-то еще кроме этой записи.

2. Сделать так, чтобы плагин сам брал что хотел из программы. Те нужна ему запись - взял скопировал....
Как это реализовать? Подойдет ли система bpl, или придется ковырять COM, который я вообще не знаю?

Может есть и другие способы решить проблему?


 
Reindeer Moss Eater ©   (2006-03-29 22:50) [1]

Возьми программу с поддержкой плугинов и изучи вопрос взаимодействия.
Не исходники программы и плугина, а принцип.


 
Германн ©   (2006-03-30 01:38) [2]


> Минус в том, что придется все таки вносить в гл. программу
> изменения. И к томуже вдруг плагин захочет что-то еще кроме
> этой записи.


Если один из двух взаимодействующих модулей (программ) не умеет чего-то делать, то никакой плагин не сможет его (её) научить этому. Имхо.

Упрости задачу. Ну например, в главной программе создаётся запись, содержащая результаты измерений. Затем в ней вызывается функция из плагина, которая обрабатывает эти результаты по некоему алгоритму. И обработанные результаты возвращает в основную программу в приемлемом виде (таблица, график и т.п.).


 
Kolan ©   (2006-03-30 11:43) [3]

Германн ©   (30.03.06 01:38) [2]
Ну я так и хотел. Единственно еотображать результаты должен сам плагин...
Но мне кажется нужно сделать систему типа - "Бери что хчешь и делай с ним что тебе надо...".

Reindeer Moss Eater ©   (29.03.06 22:50) [1]
Где можно взять принцип..?


 
Kolan ©   (2006-03-30 13:19) [4]

Правильно ли я понял, что для решения этой задачи подойдет Сервер автоматизации... Тогда вообще плагин не нужен. Просто осн. программу преврашаю в сервер. А там берите что хотите...


 
Romkin ©   (2006-03-30 14:12) [5]

Kolan ©   (30.03.06 13:19) [4] Брать можно будет то, что ты явно указал в интерфейсах. Поэтому то, что ты будешь передавать и получать и как нужно продумать заранее.


 
tesseract ©   (2006-03-30 14:15) [6]


> осн. программу преврашаю в сервер.


Не в сервер, а в клиента :-).


 
Kolan ©   (2006-03-30 14:15) [7]

Не ну это понятно... Просто с сервером я не навязываю, те не заставляю получить данные.

А если сделать так:

Германн ©   (30.03.06 01:38) [2]
Затем в ней вызывается функция из плагина, которая обрабатывает эти результаты по некоему алгоритму.


То тут стороння програма будет получать данные всегда, даже если они ей не нужны сейчас..


 
Romkin ©   (2006-03-30 14:20) [8]

tesseract ©   (30.03.06 14:15) [6] Как правило, когда делаешь все на основе СОМ, сам черт не поймет, где сервер а где клиент :))) Получаются интерфейсы, обменивающиеся данными в виде интерфейсов...


 
Kolan ©   (2006-03-30 14:27) [9]

tesseract ©   (30.03.06 14:15) [6]
Как так? Вот есть моя программа. Внешняя посылает ей запрос типа: "Да что нибудь". Она отдает... Или нетак? Ладно пойду ка я читать, а то шас бреда понапишу тут :)


 
Kolan ©   (2006-03-31 17:10) [10]

Спроетировал :)... Плагином и не пахнет правда....

Имеется программа - COM сервер(COM Объект).
И клиент.

Управлять сервером понятно как. Как получить простой тип данных вроде числа или строки тоже понятно.

А как передать клиенту запись?


 
tesseract ©   (2006-03-31 18:20) [11]


> Как правило, когда делаешь все на основе СОМ, сам черт не
> поймет, где сервер а где клиент :))) Получаются интерфейсы,
>  обменивающиеся данными в виде интерфейсов...

Угу и главное в какой области памяти находится переменная.



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

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

Наверх





Память: 0.47 MB
Время: 0.011 c
2-1145383010
DADY
2006-04-18 21:56
2006.05.07
AVI


15-1145206229
Ezorcist
2006-04-16 20:50
2006.05.07
Кому не лень, помогите с историей!))


2-1145367408
ctudent
2006-04-18 17:36
2006.05.07
Как сравнить два значения


3-1142497390
SLP
2006-03-16 11:23
2006.05.07
Как определить в активном экземпляре Excel кол-во страниц?


2-1144849520
ANB
2006-04-12 17:45
2006.05.07
Как правильно зарегить плагин к 1С ?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский