tavria2

Advanced Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Dgikar Цитата: Скажите плз, как мне правильно объявить глобальную переменную и/или процедуру, и самое главное, как мне обратиться к ней из кода программы | В AMS есть 2 вида переменных: глобальные и локальные. Глобальные переменные доступны из любого места проекта и обычно объявляются в событии "Глобальные ф-ции", а локальные - доступны только там, где они объявлены. Как объявить переменную?! Код: -- объявляем глобальные переменные cStr1 = ""; cStr2 = "Тест"; nNum1 = 0; lBool1 = true; -- объявляем локальные переменные local cStr3 = ""; local cStr4 = "переменных"; local nNum2 = 5; local lBool2 = false; -- использование переменных cStr1 = cStr2.." "..cStr4; -- результатом будет "Тест переменных" | На счет процедур - в AMS нет понятия процедур, но есть ф-ции. Отличие процедур от ф-ций лишь в том, что ф-ция выполняет действия и возвращает результат, а процедура только выполняет действия. Но мы можем использовать ф-цию без возвращения результата, что по сути и будет процедурой. Ф-ции - тоже могут быть глобальными и локальными, хоть я и не нашел в справке упоминания об этом, может быть плохо искал. Признаком локальной ф-ции будет зарезервированное слово "local". Глобальные ф-ции, также лучше располагать в событии "Глобальные ф-ции". Как вызвать ф-цию?! Код: -- глобальная ф-ция function MSG1(cText) Dialog.Message("", cText); end -- локальная ф-ция local function MSG2(cText) Dialog.Message("", cText); end -- вызов ф-ций MSG1("Глобальная ф-ция"); MSG2("Локальная ф-ция"); | Как видно из примеров, использование локальных и глобальных переменных/ф-ций - ничем не отличаются, разница только в доступности к ним. Ну а теперь вопрос - зачем нужны локальные переменные/ф-ции, если можно везде использовать глобальные?! Дело в том, что под переменные и ф-ции выделен определенный объем памяти, чем больше объявляем глобальных переменных/ф-ций, тем больше мы "съедаем" этой памяти. При большом кол-ве глобальных переменных/ф-ций, памяти может не хватить, что приведет к аварийному завершению работы проекта. Я уже достигал этого предела . Хочу заметить, что памяти выделяется не так уж и много. Для локальных переменных/ф-ций - память выделяется точно также, как и для глобальных, но после их использования - они выгружаются из памяти. Ну вот вроде бы и все. P.S. Читайте Help, там все подробно в примерах, разобраться можно даже без знания английского. | Всего записей: 1127 | Зарегистр. 19-01-2005 | Отправлено: 13:36 08-11-2006 | Исправлено: tavria2, 23:09 08-11-2006 |
|