Author Topic: Двойная условная конструкция не работает.  (Read 3030 times)

0 Members and 1 Guest are viewing this topic.

ЯнеТЫ

  • Зашел в гости
  • *
  • Posts: 3
    • View Profile
Всем здоровья! Решаю задачу, условие: Надо выполнить скрипт, при открытых двух программах, если какая то программа, или обе закрыты, то открыть, и выполнить скрипт. Вначале была одна программа, всё работало, по аналогии сделал на две, работает только если обе программы закрыты. В других случаях или не корректный ответ, или ошибка. Я только учусь... сильно не бейте... Название темы позаимствовал в справке...




Code: (clickermann) [Select]
IF(WNDFIND("Блокнот"))
  SUB(zz)
     IF(WNDFIND("Калькулятор")) // Калькулятор открыт
          SUB(qq)
            print("выполняю скрипт")  // выполняю
          END_SUB
          qq()
      ELSE // Калькулятор не открыт
        print("открываю Калькулятор")
        // EXECUTE("...Калькулятор...")   
        qq() // выполняю скрипт 
      END_IF
  END_SUB
  zz() 
ELSE // блокнот не открыт
  print("открываю блокнот")
  // EXECUTE("...блокнот...")
  zz()  // выполняю скрипт
END_IF 
HALT
« Last Edit: November 05, 2019, 09:38:41 PM by ЯнеТЫ »

ЯнеТЫ

  • Зашел в гости
  • *
  • Posts: 3
    • View Profile
Вот так работает:
Code: (clickermann) [Select]
IF(WNDFIND("Калькулятор")) // Калькулятор открыт
          SUB(xx)
            print("выполняю скрипт")  // выполняю
          END_SUB
          xx()
 ELSE // Калькулятор не открыт
        print("открываю Калькулятор")
        xx() // выполняю скрипт 
 END_IF
HALT
« Last Edit: November 05, 2019, 09:41:39 PM by ЯнеТЫ »

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Подпрограмма не может быть описана внутри условий! Описание должно быть всегда на первом уровне, выше своего вызова и лучше до основного кода.
Code: (clickermann) [Select]
          SUB(qq)
            print("выполняю скрипт")  // выполняю
          END_SUB

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Правильная конструкция

Code: (clickermann) [Select]
SUB(qq)
   print("выполняю скрипт")  // выполняю
END_SUB

SUB(zz)
   IF(WNDFIND("Калькулятор")) // Калькулятор открыт
      qq()
   ELSE // Калькулятор не открыт
      print("открываю Калькулятор")
      // EXECUTE("...Калькулятор...")
      qq() // выполняю скрипт
   END_IF
END_SUB   

IF(WNDFIND("Блокнот"))     
   zz()
ELSE // блокнот не открыт
   print("открываю блокнот")
   // EXECUTE("...блокнот...")
   zz()  // выполняю скрипт
END_IF
HALT