Ипорт функции из ex4

 

При первом вызове внешней функции из файла .ex4 естественно первым делом запускается init() этого файла. Можно ли как-то в этом ините определить, что он запущен не родным советником, а вызван извне?

 
может WindowExpertName ?
 
Ага, должно помочь.
 
WindowExpertName() возвращает имя импротируемого эксперта. Не подойдет.
 
Тогда ручками -- Init(true) и Init(false)
 
TheXpert:
Тогда ручками -- Init(true) и Init(false)

Это ничего не даст. Ведь сначала запустится init(), без всяких параметров. А уже потом вызываемая пользователем функция Init(...).

WindowExpertName() действительно не подходит в общем случае. Но можно в вызывающем коде явно указывать путь (относительный) к импортируемому файлу: "..\filename.ex4", либо "..\indicators\filename.ex4", либо "..\scripts\filename.ex4", смотря в какой папке этот файл (изначально мы находимся в папке libraries). В этом случае WindowExpertName() также возвращает этот путь к файлу. И тогда можно без проблем проверить, что файл импортирован, по наличию символов "." или "\". Это конечно не универсальное решение, т.к. файл может быть вызван без указания пути, но для собственного пользования сгодится.

Если у кого есть более надёжное решение этой задачи, то предлагайте.