Quote:у меня оно должно быть egb_dialogOpt, чтобы не пересекаться с иными именами.
Не так. Локальные переменные — это просто временные имена для компилятора для одного триггера. Они не пересекаются с глобальными, не зависят от других скриптов и триггеров.
Смотри. Происходит событие, скажем щелчок мышкой. !?CM0.
Для данного события выделяется временная память в 100 целых чисел (y1..y100). Если в рамках события произойдёт показ диалога, а в том нажатие кнопки, то у нового события будут свои уникальные y1..y100.
Так вот, ЕРМ 2 позволяет тебе не вручную в голове выделять индексы для локальных переменных, а автоматически под читаемыми именами.
Quote:почему последний индекс -1, а не 3?
Отрицательные индексы в именованных локальных переменных имеют значение: «N-й с конца», как во многих функциях Javascript/PHP, например.
-1 — последний или первый с конца
-2 — предпоследний или второй с конца
Если ты изменишь размер массива на 10 элементов, то мой код будет работать, а твой сломается.