Добро пожаловать к нам в гости! Наш сайт посвящён программе NeoBook, с помощью которой вы легко сможете создавать собственные мультимедиа-приложения без необходимости изучать сложные языки программирования! Зарегистрируйтесь, чтобы стать членом нашего сообщества.
Ребята, извините что влазию, подправьте код пожалуйста! Смысл в том, что без нажатия на кнопку и ввода имени пользователя по идее меню программы не должно работать, оно впринципе и не работает, только вот после нажатия на кнопку даже без ввода имени, все равно меню активизируется, че не так написанно?
If "[Name]" ">" "" EnableMenuItem "MenuHeading1" EnableMenuItem "MenuHeading3" EnableMenuItem "MenuHeading2" EnableMenuItem "MenuHeading4" EnableMenuItem "MenuHeading5" EnableMenuItem "MenuHeading6" EnableMenuItem "MenuHeading7" EnableMenuItem "MenuHeading8" Else SystemSound "SystemExclamation" AlertBox "Сообщение!" "Для начала работы с программой необходимо ввести имя пользователя!" FocusObject "TextEntry1" EndIf AlertBox "Сообщение!" "Добро пожаловать, теперь Вы можете использовать меню программы" HideObject "PushButton6" "None" "0" HideObject "TextEntry1" "None" "0" HideObject "Text6" "None" "0"
If "[Name]" "=" "Вася" .If "[Name]" "<>" "" Loop "1" "8" "[j]" EnableMenuItem "MenuHeading[j]" EndLoop SystemSound "SystemExclamation" AlertBox "Сообщение!" "Добро пожаловать [Name], теперь Вы можете использовать меню программы" HideObject "PushButton6" "None" "0" HideObject "TextEntry1" "None" "0" HideObject "Text6" "None" "0" Else AlertBox "Сообщение!" "Для начала работы с программой необходимо ввести имя пользователя!" FocusObject "TextEntry1" EndIf
Quote
If "[Name]" "=" "Вася" проверка на определенное имя If "[Name]" "<>" "" проверка, что поле не пустое, т.е. если поставить просто 0, то вход будет выполнен из двух усовий выбери, который нужен
Сообщение отредактировано Сергей - Сб, 12 Февраля 2011, 12:47
зацикливаем то что между Loop и EndLoop, как правило это набор однотипных команд, а именно твои команды EnableMenuItem которые ты написал 8 раз Как задавать вопросы
j это счетчик оборотов цикла, в данном случае от 1 до 8. При каждом обороте значение счетчика j=1,2...8 прекрасно подставляется вместо ваших MenuHeading1, MenuHeading2, не находите?
Добавлено (12 Февраль 2011, 13:45) --------------------------------------------- ну и при каждом обороте действие EnableMenuItem выполняется для нужного MenuHeading, каждого из восьми (по возрастанию счетчика).
Господа, а как добавить реагирование на клавишу ENTER, то есть, ввел имя пользователя нажал энтер, и вошел в систему... в конкретно приведенном мной примере кода
Сообщение отредактировано vuger - Чт, 17 Февраля 2011, 10:51
перехват клавиш решается еще штатными способами примерно так
создайте кнопку за пределами проекта, чтобы ее не видно было. В кнопку напишите обработчик события нажатия клавиши, что должно выполняться. И повесьте на эту кнопку вызов по горячей клавише (это и будет Enter, как вы догадались).
возможные неувязочки: -потеря фокуса проектом при выполнении скрипта из такой "невидимой" кнопки -невыполнение скрипта в невидимой кнопке из-за отсутствия фокуса на ней решаются установкой фокуса вручную соотв. штатными командами. Появляются редко, в обычных условиях должно все работать. И не засовывайте в эту кнопку много кода, разместите там просто часть кода обработчика события нажатия Ентера, и возвращайте управление в проект.
Как только перехват кнопки перестает быть нужен, достаточно деактивировать кнопку с помощью DisableObject.
в свойствах объекта есть параметр "Горячая клавиша" вот там и назначай
что-то не пойму, что происходит при нажатии горячей клавиши в поле ввода? должны по идее выполнятся прописанные в каком-нибудь событии команды, но ничего не выполняется... Как задавать вопросы
гениально, сработало, действительно, я бы сам не догадался, спасибо Сергей и Dembel! Получаю истиное удовольствие от отзывчивости людей на данном форуме, редко такое встретишь, рад, что нашел Вас!