|
|
|
Программа с плагинами под Fox Pro
|
|||
|---|---|---|---|
|
#18+
Необходимо организовать программу, к которой можно было бы подключать плагины. Т.е. есть основная программа - хост, и есть папочка plugins, в которой лежат app, подключаемые к хосту. Вот только кроме как общих принципов больше не имею представления как это все сделать. Может есть где-нибудь живой пример по этому поводу? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.12.2007, 08:25 |
|
||
|
Программа с плагинами под Fox Pro
|
|||
|---|---|---|---|
|
#18+
Иван КрамерНеобходимо организовать программу, к которой можно было бы подключать плагины. Т.е. есть основная программа - хост, и есть папочка plugins, в которой лежат app, подключаемые к хосту. Вот только кроме как общих принципов больше не имею представления как это все сделать. Может есть где-нибудь живой пример по этому поводу? 1. Есть таблица с перечнем всех модулей (плагинов). У меня это EXE, а не APP. Таблица содержит идентификаторы модулей, и описание возможных параметров прав доступа к модулю. 2. Есть таблица с перечнем рабочих мест с идентификаторами рабочих мест и прочими мелочами. 3. Есть связка этих таблиц, в которой перечисляются модули, подключаемые к каждому рабочему месту с соответствующими правами. 4. Есть модуль оболочки, который является общим для всех рабочих мест. 5. В каждом модуле, кроме оболочки, есть метод module_init, в котором написан код встраивания модуля в оболочку: добавление необходимых пунктов в общее меню, добавление кнопок в общую панель инструментов, создание глобальных переменных для данного модуля и т.д. При старте оболочка сканирует таблицу связки модулей, выбирает модули для данного рабочего места и в каждом из этих модулей запускает метод module_init. В первом приближении так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.12.2007, 08:56 |
|
||
|
Программа с плагинами под Fox Pro
|
|||
|---|---|---|---|
|
#18+
2 fox_vik Мысль понятна, но как ваши модели (EXE) взаимодействуют с хостом, в котором они работают. Например на C++ мне все понятно как сделать (там крутить можно как угодно), но с VFP до конца неясно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2007, 11:56 |
|
||
|
Программа с плагинами под Fox Pro
|
|||
|---|---|---|---|
|
#18+
Какое взаимодействие Вы имеете в виду? Пример приведите. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2007, 16:55 |
|
||
|
Программа с плагинами под Fox Pro
|
|||
|---|---|---|---|
|
#18+
Попробовал сделать пример. Создал класс interface в vcx Способ подключения в хосте следующий Код: plaintext 1. 2. В интерфейсе определил метод GetCurrentPath(), в котором попытался использовать объект goApp. goApp - создается при инициализации хоста, но в классе interface он не виден получается или я ошибаюсь? Также сделал метод InitEnvironment(LPARAMETERS oApp) в классе interface, где oApp присваивается Interface.oApp, чтобы потом использовать данный объект, но тоже его не видно почему-то 8( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2007, 08:45 |
|
||
|
Программа с плагинами под Fox Pro
|
|||
|---|---|---|---|
|
#18+
Каша, какая-то. Код: plaintext 1. 1. Сам класс создан как OLEPUBLIC 2. Где и как создается goApp 3. Как пытаешься достучаться до обьекта через GetCurrentPath(), ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2007, 09:52 |
|
||
|
Программа с плагинами под Fox Pro
|
|||
|---|---|---|---|
|
#18+
Иван КрамерgoApp - создается при инициализации хоста, но в классе он не виден получается или я ошибаюсь? Если goApp - переменная Public и объект ей присвоен до обращения в классе interface, то должен быть виден. Иначе нужны подробности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2007, 14:27 |
|
||
|
Программа с плагинами под Fox Pro
|
|||
|---|---|---|---|
|
#18+
HELPNEWOBJECT(cClassName [, cModule [, cInApplication [, eParameter1, eParameter2, ...]]]) ... cInApplication Specifies the Visual FoxPro application (.exe, or .app) containing the .vcx visual class library you specify with cClassLibName. You must include an extension for the application. CInApplication is ignored if cModule is omitted, or if cInApplication is the empty string or the null value. Допустим у тебя в PlugIn\MyPlugin.app есть PlugLib.vcx а в ней класс Interface Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2007, 15:31 |
|
||
|
Программа с плагинами под Fox Pro
|
|||
|---|---|---|---|
|
#18+
2 Dima T Сделал, как вы сказали, и все заработало. Похоже различие между NewObject и CREATEOBJ сыграло свою роль. Еще раз почитаю документацию, чтобы понять в чем дело. Спасибо. Код: plaintext 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2008, 11:50 |
|
||
|
|

start [/forum/topic.php?fid=41&fpage=173&tid=1588312]: |
0ms |
get settings: |
7ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
39ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
| others: | 191ms |
| total: | 310ms |

| 0 / 0 |
