непонятки с поведением переменных - страница 2

 
wlad:

неправильно - никакой инициализации не производитсья

вот доказательство из справки

Инициализация глобальных переменных производится однократно сразу после загрузки программы в память клиентского терминала.

и вообще здесь дело не в инициализации а в изменении переменной

прошу внимательно код прочитать

А вы ещё причину деинициализации в init() выведите в журнал. Тогда вам понятно станет почему происходит инициализация.
 
valenok2003:

у вас всегда выполнено условие StringVal != backup и firsttime всегда будет true, поскольку он (инит) запускается единственный раз при КАЖДОМ пуске советника, а новый пуск происходит при смене тф окна, при изменении сета при запуске терминала.

вы не о том

так как не внимательно читали посты

Проблема возникает при изменении extern string Value

причём вторая переменная тоже меняется при изменении первой

причём всегда

а должна поменятся только один раз

 
artmedia70:
А вы ещё причину деинициализации в init() выведите в журнал. Тогда вам понятно станет почему происходит инициализация.

да вы о чём

забудте про инициализации

возьмите последний пример без init() и протестите

зачем чепуху говорить если не поняли о чем речь

 
wlad:

да вы о чём

забудте про инициализации

возьмите последний пример без init() и протестите

зачем чепуху говорить если не поняли о чем речь



Либо ломайте копья дальше, либо-таки почитайте почему происходит инициализация переменных при изменении входных параметров.

"... Инициализация глобальных переменных производится однократно сразу после загрузки программы в память клиентского терминала..."

То, что вы выделили красным цветом и толщиной шрифта - это не даёт вам гарантии, что после изменения значения внешней переменной не произойдёт вновь инициализация как и при первом пуске. Вы можете даже размер шрифта поменять в сообщениях. Но инициализация всё-равно будет, даже если убрать init() из программы.

 
wlad:

вы не о том

так как не внимательно читали посты

Проблема возникает при изменении extern string Value

причём вторая переменная тоже меняется при изменении первой

причём всегда

а должна поменятся только один раз




один раз при КАЖДОМ запуске советника, а запуск происходит каждый раз, как только вы поменяли эту переменную и нажали ОК

что вы понимаете под "загрузкой программы в память клиентского терминала..." ??? это какой момент? когда вы откомпилировали код?

 
artmedia70:

Либо ломайте копья дальше, либо-таки почитайте почему происходит инициализация переменных при изменении входных параметров.

"... Инициализация глобальных переменных производится однократно сразу после загрузки программы в память клиентского терминала..."

То, что вы выделили красным цветом и толщиной шрифта - это не даёт вам гарантии, что после изменения значения внешней переменной не произойдёт вновь инициализация как и при первом пуске.

зачем отвечать если не читаете посты внимательно

2. переменная не инитиализируется а принимает значение 1.

если лень протестировать то не надо засорять эфир

если хотите помочь - я буду благодарен!

прочитайте внимательно посты и протестите


и уткуда у вас это?

это не даёт вам гарантии, что после изменения значения внешней переменной не произойдёт вновь инициализация как и при первом пуске.

повторной инициализации глобальных переменных ещё не наблюдал

 
wlad:

зачем отвечать если не читаете посты внимательно

2. переменная не инитиализируется а принимает значение 1.

если лень протестировать то не надо засорять эфир

если хотите помочь - я буду благодарен!

прочитайте внимательно посты и протестите


и уткуда у вас это?

это не даёт вам гарантии, что после изменения значения внешней переменной не произойдёт вновь инициализация как и при первом пуске.

повторной инициализации глобальных переменных ещё не наблюдал


При изменении внешней переменной происходит перезапуск советника. Я вам предложил вывести причины деинициализации в журнал. Вы предпочли этого не делать.
 
valenok2003:

что вы понимаете под "загрузкой программы в память клиентского терминала..." ??? это какой момент? когда вы откомпилировали код?

в этом случае тоже

имеется в виду когда программа первый раз прикрепляется к графику

но я повторюсь

дело не в инитиализации

читайте выше

 
artmedia70:
При изменении внешней переменной происходит перезапуск советника. Я вам предложил вывести причины деинициализации в журнал. Вы предпочли этого не делать.

зачем?

что мне это даст?

я знаю почему происходит деинициализация

я меняю внешний параметер

 
wlad:

в этом случае тоже

имеется в виду когда программа первый раз прикрепляется к графику

но я повторюсь

дело не в инитиализации

читайте выше



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

Причина обращения: