Форум
Написать нам
  • Страница 1 из 1
  • 1
Модератор форума: as-master  
Несколько действий - одной кнопкой
as-masterДата: Воскресенье, 26 Ноября 2006, 12:24 | Сообщение # 1
Группа: Удаленные





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

Code
If (status=0) Then
  status=1
  LoadText("TextBTN","СТОП")
  RunScript("Start")
Else
  status=0
  LoadText("TextBTN","СТАРТ")
  RunScript("Stop")
End

Команда LoadText() здесь нужна для того, чтобы изменять надпись на кнопки (если это простая текстовая кнопка).
С помощью подобного же сценария можно контролировать, в какой раз нажата кнопка - в чётный или нечётный:

Code
If (status=0) Then
  status=1
  Message("Кнопка нажата в нечётный раз","")
Else
  status=0
  Message("Кнопка нажата в чётный раз","")
End

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

Code
i=i+1
script$='Script'+CHAR(i)
mess$='Сейчас будет запущен '+script$
Message("mess$","")
RunScript("script$")

И после каждого нажатия будут последовательно запускаться скрипты Script1, Script2, Script3 и так далее.

Надеюсь, это может пригодиться начинающим любителям ММВ :)

 
MangozДата: Вторник, 28 Ноября 2006, 09:59 | Сообщение # 2
Ветеран форума
Группа: Проверенные
Сообщений: 215
Репутация: 1
Награды: 2
Статус: Offline
Я встечался с такой проблемой! И был глюк - збивались переменные (точнее запоминались старые!)
На mmbuilder.nm.ru на форуме - это обсуждалось, не помню кто но он страдал!
И на сколько я помню решением было поделить цикл!
Ну что-то типа 3го примера:
Code

i=i+1 
script$='Script'+CHAR(i) 
mess$='Сейчас будет запущен '+script$ 
Message("mess$","") 
RunScript("script$")

smile Вот так то!


MMB. Найдём всё!
 
as-masterДата: Вторник, 28 Ноября 2006, 12:54 | Сообщение # 3
Группа: Удаленные





Quote (Mangoz)
И на сколько я помню решением было поделить цикл!

Честно говоря, ничего не понял из твоего поста.
Все скрипты, что я привел, работают чётко, и никакие переменные не сбиваются
.

 
dronetДата: Воскресенье, 11 Марта 2007, 22:40 | Сообщение # 4
Любопытный
Группа: Проверенные
Сообщений: 38
Репутация: 0
Награды: 0
Статус: Offline
А если надо при нажатии первый раз запустить Script1, А при нажатии 2,3,4,5, и так-далее - запустить Script2.
Мне надо-то впринципе чтобы первый раз при открытии страници1 запустить Script1, и потом посетить страницу2 и опять назад на страницу1 то запустить уже Script2.
И так каждый раз - при открытии всего проекта! Возможно ли такое???


Andress
 
as-masterДата: Воскресенье, 11 Марта 2007, 23:49 | Сообщение # 5
Группа: Удаленные





Quote (dronet)
А если надо при нажатии первый раз запустить Script1, А при нажатии 2,3,4,5, и так-далее - запустить Script2. Мне надо-то впринципе чтобы первый раз при открытии страници1 запустить Script1, и потом посетить страницу2 и опять назад на страницу1 то запустить уже Script2. И так каждый раз - при открытии всего проекта! Возможно ли такое???

Ну просто поставь счетчик! Я же написал выше такой сценарий!
Предположим, что сначала некоторое число i было равно нулю. Проект запустили,
выполняется сценарий:

i=i+1
script$='Script'+CHAR(i)
RunScript("script$")

В следующий раз i ведь увеличится на единицу и будет уже равным двум,
а значит, запустится не Script1, а Script2, и т.д.

 
  • Страница 1 из 1
  • 1
Поиск: