Добро пожаловать к нам в гости! Наш сайт посвящён программе NeoBook, с помощью которой вы легко сможете создавать собственные мультимедиа-приложения без необходимости изучать сложные языки программирования! Зарегистрируйтесь, чтобы стать членом нашего сообщества.
Подскажите, пожалуйста, если мне необходимо создать тест и некоторые вопросы могут содержать несколько правильных ответов. Я для вариантов ответов создаю checkbox - ы, для кнопки "Продолжить" (после нажатия на нее, программа должна перейти на следующую страницу. Но если ответы не выбраны, то должна вывести сообщение) записала условие и выходит ошибка
If "[CheckBox1]" ">" ""OR"[CheckBox2]" ">" ""OR"[CheckBox3]" ">" ""OR"[CheckBox4]" ">" ""OR"[CheckBox5]" ">" "" GotoNextPage Else AlertBox "Whoops" "Вы не ответили на предыдущий вопрос!!" EndIf
Добавлено (20 Ноября 2013, 23:29) --------------------------------------------- Каждый из CheckBox - один из вариантов ответа. Если их объединить в 1 группу [CheckBox], то при выборе одного из них, автоматически выбираются все
Во первых, в данном случае если ответ имеет одно правильное значение, то лучше наверно использовать радио группу. Тогда и проверка условия будет проще. Например у радиокнопок три ответа "Да" "Нет" "Или". Будем считать что правильный ответ "Нет" Тогда:
Код
If "[RadioGroup1]" "=" "Нет" Выполняется код Else Алерт бох, ответ не правильный. EndIf
Во вторых, если вы хотите в одной команде использовать сразу несколько условий, тогда нужно применять команду IfEx Выглядеть это будет примерно так:
Код
IfEx "[CheckBox1] =[#34][#34] OR [CheckBox2] =[#34][#34] OR [CheckBox3] = [#34][#34] OR [CheckBox4] = [#34][#34] OR [CheckBox5] =[#34][#34]" AlertBox "Whoops" "Вы не ответили на предыдущий вопрос!!" Else GotoNextPage EndIf
Что означает если все переменные пустые, то флажок не установлен нигде.
Ну и в третьих лучше наверно начать с изучения Справки.
А то выше выражение вообще не понятно как могло получится.
Код IfEx "[CheckBox1] =[#34][#34] OR [CheckBox2] =[#34][#34]
Тут нужно сделать небольшое уточнение: данный код (для AlertBox) будет выполнен только при условии выбора сразу всех переключателей (CheckBox-ов). Для того, чтобы сообщение выскакивало только в случае если вообще не выбран никакой вариант ответа (все переключатели не отмечены), оператор OR нужно заменить на AND.
А вообще, mishem прав: в случаях, когда нужно выбрать только одно из нескольких значений, обычно применяют радиокнопки, а переключатели (CheckBox-ы) применяют когда можно выбрать либо из двух (отмечен/не отмечен), либо сразу несколько вариантов, т.е.
Цитатаdianil0810 ()
некоторые вопросы могут содержать несколько правильных ответов.
Цитатаdianil0810 ()
Если их объединить в 1 группу [CheckBox], то при выборе одного из них, автоматически выбираются все
Можно и так, только не следует забывать, что в этом случае, когда снимается флажок с одного CheckBox-а, автоматически он снимается и со всех остальных. - А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
Записала так, как вы сказали. Всё получилось, спасибо! У меня версия NeoBook 5 Professional незарегистрированная, тут справка на английском языке... воспользоваться ей поэтому не могу.
У меня еще вопрос по записи условия. Я хочу подсчитать количество правильных ответов. Среди других ввожу условия If "[CheckBox1]" "=" "логин;" AND "[CheckBox4]" "="пароль;" SetVar "[Right]" "[Right]+1" Else SetVar "[Wrong]" "[Wrong]+1" If "[CheckBox6]" "=" "фотографию, либо изображение, сохраненное на Вашем компьютере;"AND "[CheckBox7]" "="снимок веб-камеры;" SetVar "[Right]" "[Right]+1" Else SetVar "[Wrong]" "[Wrong]+1" EndIf то программа не подсчитывает ни правильные ответы ни верные, в этих CheckBoх. Опять в коде что-то не так
У меня в подписи ссылка как раз на русскую справку.
Цитатаdianil0810 ()
а что значит [#34][#34]
Это спецсимволы, пробел так можно обозночать. ( "" ) Почему и говорю, что справку нужно почитать. Там и о символах, и о переменных, и каждая команда описана. Кидаете с заменой файл справки в НБ, и при нажати в любом диалоговом окне "Справка" для вас будет она открываться в нужном месте.
If "[CheckBox1]" "=" "логин;" AND "[CheckBox4]" "="пароль;"
Здесь не верно записано условие. Кликните в окне по этой команде еще раз, и окно откроется с пустыми полями. НБ не может этого прочитать и понять.
Красным выделено то, чему здесь не место. Синим, это начало условия и название команды. Если вы замените If на IfEx это будет уже другая команда , в которой можно подставлять AND или OR
Тоесть эта команда должна выглядеть примерно так:
IfEx "[CheckBox1]=логин; AND [CheckBox4]=пароль;"
Красным выделена одна строка в которой не должно присутствовать " Кавычки для НБ дают понять начало и конец значения.
Примерно как в математике скобки (здесь что то) (здесь еще что то) Короче вам легче прочитать и поразбирать для начала примеры. Понять что ттакое условие и циклы. Да и не только это.
У справки хороший перевод и все доступно понятно, ну если только за исключением каких нибудь тонкостей. Не хочешь читать хелп?
Спасибо за справку. Изменила код на: SetVar "[Right]" "0" SetVar "[Wrong]" "0" If "[RadioGroup9]" "=" "общаться в режиме реального времени;" SetVar "[Right]" "[Right]+1" Else SetVar "[Wrong]" "[Wrong]+1" EndIf If "[RadioGroup10]" "=" "загрузка;" SetVar "[Right]" "[Right]+1" Else SetVar "[Wrong]" "[Wrong]+1" If "[RadioGroup11]=[#34]навести курсор на имя файла и щелкнуть два раза левой кнопкой мыши;[#34]" SetVar "[Right]" "[Right]+1" Else SetVar "[Wrong]" "[Wrong]+1" IfEx "[CheckBox1]=логин; AND [CheckBox4]=пароль;" SetVar "[Right]" "[Right]+1" Else SetVar "[Wrong]" "[Wrong]+1" If "[CheckBox6]=[#34]фотографию, либо изображение, сохраненное на Вашем компьютере;[#34] AND [CheckBox7]=[#34]снимок веб-камеры;[#34]" SetVar "[Right]" "[Right]+1" Else SetVar "[Wrong]" "[Wrong]+1" EndIf
В НБ есть еще такая вещь как отладчик. Запускаете проект, в отладчике нажимаете паузу и пошагово просматриваете как работает код.
Первую ошибку НБ сразу выдает. If "[RadioGroup11]=[#34]навести курсор на имя файла и щелкнуть два раза левой кнопкой мыши;[#34]"
Здесь нет кавычек после [RadioGroup11], перед и после знака равно, и перед [#34].
Вторая ошибка, нет Endif после этого условия. Ну и дальше тоже смотрю Endif отсутствует.
Вы научитесь код писать сначала с окнами мастеров. А после уже можно будет и в ручную исправлять, когда сумеете этот код свободно читать. Пока рано еще. Не хочешь читать хелп?