Создание скриптов в MMB - это то, что многие пользователи игнорируют. Они думают, что это очень сложно, и эти мысли их останавливают. Я здесь для того, чтобы сказать вам, что это не так. В то время как многие задачи могут показаться сложными, например, создание кнопок, которые выполняли бы несколько действий за одно нажатие, на самом деле решение подобных задач - не что иное, как несколько простых строчек кода.
Язык скриптов MMB построен вокруг четырех основных элементов: команд, переменных, вычислительных структур (выполняющих действия, связанные со значениями переменных) и циклов. Есть еще пятый элемент, так называемые комментарии, но они не играют никакой роли, кроме облегчения чтения вашего кода.
Прежде чем мы создадим какой-нибудь работоспособный код, давайте изучим комментарии. Чтобы добавить комментарий, достаточно поместить в начале строки звездочку (*). Все, что находится после этого символа, будет игнорироваться MMB вплоть до следующей строки.
** комментарий
Начиная с версии 4.9.7, вы можете создавать многострочные комментарии! Используя выражения вида /*комментарий*/, вы можете поместить в комментарий сразу несколько строк.
/* первая строка комментария
вторая строка комментария
третья строка комментария */
Помните, что открывающее комментарий сочетание символов /* должно находиться в начале строки (не считая пробелов), а завершающее сочетание */ - в конце последней строки комментария. Блок комментариев не может начинаться в середине строки!
Команды
Следующим элементом скриптов являются команды. Команды представляют собой несложные выражения, так называемые ключевые слова, сопровождаемые информацией в круглых скобках (и кавычках), которая выполняет определенные функции (эта информация называется параметрами команды). Все команды, кроме SysCommand, выполняют одну функцию. Команды выглядят приблизительно так:
КлючевоеСлово("Параметр")
(конечно, "КлючевоеСлово" не является настоящей командой, это всего лишь пример ;)
Большинство команд используют хотя бы один параметр. Обычно это пути, объекты на странице или переменные. Некоторые команды требуют указания двух параметров, каждый из которых заключается в кавычки и разделяется запятой. Для каждого параметра не требуются круглые скобки. Они отделяют параметры от ключевого слова, внутри скобок параметры разделяются только запятыми. Вот как выглядит команда с двумя параметрами:
КлючевоеСлово("Параметр1","Параметр2")
Прежде чем двинуться дальше, кратко подведем итоги: команда - это строка кода, которая выполняет определенную функцию. Команды состоят из ключевого слова, которое начинает команду, и параметров. Список параметров (или информации, которая требуется для выполнения команды) заключается в круглые скобки; если параметр не один, то параметры разделяются запятыми. Каждый отдельный параметр заключается в кавычки. Кроме того, некоторые команды не требуют указания параметров, но они также сопровождаются пустыми круглыми скобками (например, Exit() ).
Переменные
Переменные являются важной составляющей скриптов. Они позволяют вам выполнять нечто большее, чем простая последовательность команд. Переменные можно представить в виде коробок, которые хранят значения. Значения, как вы наверняка догадались, это информация, хранящаяся в переменных. Представьте, что вы бы хотели отследить нажатие кнопки. Переменные помогут вам в этом.
Существует два типа переменных, которые легко запомнить - числовые и строковые. Вы можете предположить, что числовые переменные хранят только числа, а строковые переменные хранят и числа, и другие символы, но в виде текста. Чтобы MMB мог различать переменные, строковые переменные сопровождаются знаком доллара ($) в конце имени переменной.
Но подождите! Вы спрашиваете, что такое имя переменной? Проще говоря, это то, что MMB использует для того чтобы отличать одну переменную от другой. Хорошо, возможно это не лучшее объяснение. А как насчет такого: если переменные это коробки, то имена переменных - это надписи на коробках. Если кто-нибудь попросит вас принести коробку с чем-либо, то вы не сможете найти нужную коробку, если коробки не будут подписаны. Таким образом, имена переменных позволяют MMB помнить, в какую из коробок было помещено значение (информация). Вы можете назвать переменную как угодно, но имя должно содержать только алфавитные символы, цифры и знак подчеркивания (_). Кроме того, как я уже говорил, если вы хотите создать строковую переменную, то вы должны поместить в конце имени символ доллара.
Итак, вы знаете, что такое переменные, но теперь вы хотите узнать, как использовать эти дары бога? Что ж, это очень легко. Когда вы хотите поместить значение в переменную, то все что вы должны сделать, - это написать строку, начинающуюся с имени переменной, затем поставить знак равенства и значение переменной. (Значения строковых переменных должны содержаться в апострофах (') ) У вас должно получиться что-то вроде этого:
** для числовой переменной
MyVariable=10
** для строковой переменной
MyVariable$='Мой текст'
(Обратите внимание на комментарии перед каждой строкой. Они нужны для того, чтобы сделать скрипт более понятным. Писать их не обязательно.)
Если потом вы захотите изменить значение переменной, то просто введите новое значение. Вы также можете присваивать значение одной переменной другой, как показано здесь:
** для числовой переменной
MyVariable2=MyVar
** для строковой переменной
MyVariable2$=MyVar$
АРИФМЕТИЧЕСКИЕ ОПЕРАЦИИ
Теперь вы можете удивиться - для чего нужны два типа переменных? Зачем нужны числовые переменные, если вы с легкостью можете хранить числа в строковых переменных? Одной из причин являются арифметические операции.
Формат операций такой же, как в детском саду - сложение, вычитание, умножение и деление. Единственная разница в том, что используется символ * для умножения, и символ / для деления. Вот пример использования арифметики:
a1=10+2 ** результат 12
a2=a1-2 ** результат 10
a3=a2*2 ** результат 20
a4=a3/2 ** результат 10
Заметьте, что в выражениях для a2, a3 и a4 мы используем переменные. В этом преимущество переменных перед обычными числами. И именно поэтому нельзя использовать строковые переменные. Арифметические операции не могут работать с буквами, ведь и вы сами не умеете выполнять арифметических действий с ними! Таким образом, числовые переменные используются для ограничения математических действий только числами.
Другим замечательным свойством является то, что вы можете использовать значение переменной, в которой будет сохранен результат, в самом выражении:
a1=a1+1
Это возможно, потому что MMB сначала подставляет значение переменной в выражение, затем выполняет присваивание.
ВРЕМЯ ЖИЗНИ ПЕРЕМЕННОЙ
Если у меня есть переменная, то я всегда могу обратиться к ней? Только в то время, пока работает программа. Когда выполнение программы завершается (нормально или в результате сбоя), программа удаляет все свои переменные из памяти. Почему она не может оставить переменные в памяти на будущее? Потому что программы используют для хранения переменных ОЗУ. ОЗУ предназначено для краткосрочного хранения данных. Свободное место в оперативной памяти ограничено, и если бы каждая программа хранила там свои переменные постоянно, то очень скоро у вас бы не осталось свободного места в памяти для управления системой. К тому же, даже если бы была возможность оставлять данные между запусками программ, то это все равно не имело бы смысла, т.к. компьютер полностью освобождает ОЗУ при выключении. Но вы можете получать доступ к переменным с любой страницы вашего проекта. Также помните, что когда вы используете функцию Run Another Project ("Запустить другой проект") или команду RunMBD (которая делает то же самое), если вы не используете при этом параметр NEW_WINDOW, то вы потеряете все переменные из предыдущего проекта. Для хранения и дальнейшего использования переменных вы можете воспользоваться командами SaveVariable и LoadVariable, которые позволяют сохранять переменные в реестр и загружать их оттуда при необходимости.