Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.05.07;
Скачать: CL | DM;

Вниз

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

 
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;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.026 c
2-1145620631
Zaq123
2006-04-21 15:57
2006.05.07
Ansi to OEM


2-1144903632
paul_k
2006-04-13 08:47
2006.05.07
Не могу понять. Или у меня руки кривые или одно из двух.


3-1142329116
hursand
2006-03-14 12:38
2006.05.07
текcтавом формате


2-1145525063
Beglec
2006-04-20 13:24
2006.05.07
TEdit - печать с права на лево


2-1145395126
77777
2006-04-19 01:18
2006.05.07
Скорость