ОБСУЖДЕНИЕ

Как можно динамически вызвать процедуру из библиотеки?

10 ответов 6,5 тыс.
AI-выжимка обсуждения скоро

Краткие тезисы обсуждения со ссылками на ключевые ответы появятся здесь.

Автор темы
появилась потребность вызвать динамически процедурку из библиотеки, напрямую вызвать не могу. т.к. нижние библиотеки скрыты, если бы была функция все понятно - через Execute...
а как быть в случае SUB ?
 
а какая разница - ф-ция или процедура? Вы же вызываете код из либы, напишите в экзекьюте юз либы и вызов процедуры.
 
спасибо! так и сделаю! ;)
 
напрямую вызвать не могу. т.к. нижние библиотеки скрыты, если бы была функция все понятно - через Execute
Растолкуй, что значит "скрытые" и чем они так закрыты, что из них нельзы вызвать функцию/процедуру?
Если функция объявлена приватной, то ее и Execute не вытянет.
А, если не объявлена, то и без Execute вызвать можно, главное знать ее систаксис.
 
все просто, исходный код библиотек базового уровня скрыт дизайном, присутствует только в откомпилированном виде, далее идет 2-3 уровня библиотек с открытым кодом, из них соответственно пытаюсь запустить процедуры и функции или объявлять классы объявленные в них. Если я уже в своем коде пишу напрямую use имя_библиотеки, а в теле вызываю ее компонент, то при компиляции возникает ошибка, указывающая на библиотеки нижнего уровня, нет исходного кода.

Через Execute все получилось.
 
Ух ты! А что за версия? В 6-7 такой проблемы не наблюдалось, на сколько помню.
версия 8.5.1, там изначально дизайнер все эти библиотеки подсвечивает как с отсутствующими элементами
 
*надо запомнить* Знач надо скрывать выгрузкой кода в инклуды...
 
Знач надо скрывать выгрузкой кода в инклуды.
Есть свои грабли. Насколько я помню, если есть библиотеки А, В, С, причём В и С включают А (Use A), то в библиотеке Е Use B + Use C будет вызывать ошибку для инклудной A (для неинклудной А всё норм). Хотя м.б. в 8.5.1 поведение изменилось, не проверял.
 
*надо запомнить* Знач надо скрывать выгрузкой кода в инклуды...

А можно пояснить на примере?

Мой пример такой, есть библиотеки A,B,C , исходный код библиотеки А скрыт(удален) и базы, в библиотеке B используется А (use A) , в С - "use B". Далее, например пишу свою библиотеку , где делаю "use C", при сохранении появляется ошибка, указывающая на отсутствие классов библиотеки A при компиляции. Тоже самое, при внесении изменений в библиотеку С, сохранить их можно, при компиляции есть ошибки указывающие на объекты из А.
А вот например акцию использующую "С" мне создать удалось для формы, по-изучаю вопрос в дальнейшем, не все пока мне в нем ясно.
 
Код:
%INCLUDE "myfilepath.lss"
 

Статистика тем

Создано
phantom76,
Последний ответ от
Akupaka,
Ответы
10
Просмотры
6 491