Автор Dmitri Popov | |||||||||||||
09.10.2008 г. | |||||||||||||
Автор перевода: Александр Гец С помощью OpenOffice.org Writer можно создавать формы любой сложности, начиная от простого опросника и заканчивая сложными интерактивными тестами. Здесь рассказывается о том, как создать простую викторину, используя средство форм, и как добавить ей интерактивности несколькими макросами. Викторина, которую мы будем создавать, состоит из серии вопросов, каждый из которых имеет несколько вариантов ответов. Перед тем, как начать разрабатывать викторину, хорошей идеей будет создание базы данных, содержащей все вопросы. Эта база данных очень упростит процесс управления и добавления вопросов в викторину. Создайте новую базу данных с помощью Base, и убедитесь, что зарегистрировали её для использования в других приложениях ООо, выбрав опцию «Да, зарегистрировать базу данных» ("Yes, register the database for me") в Мастере базы данных (Database Wizard). Создайте новую таблицу и отредактируйте её структуру. Поля базы данных Большинство полей вы можете использовать по своему усмотрению; тем не менее, обязательно нужно поле Question, содержащее текст вопроса. Также вы можете добавить и другие поля, например, Category (категория, к которой принадлежит вопрос), Level (уровень сложности вопроса), DateUsed (время, когда последний раз задавался вопрос) и Notes (различные примечания). После того, как база данных будет готова, заполните её вопросами. Как только вы сделаете это, можно начать работу над документом викторины. Создайте пустой документ Writer и добавьте в него вопросы:
Следующим шагом будет добавление опции ответа. Так как викторина содержит вопросы с несколькими вариантами ответов, вы должны добавить группу к каждому вопросу, состоящую из правильного ответа и нескольких неправильных альтернатив (их иногда называют distractors). Чтобы сделать это, необходимо открыть панели инструментов, позволяющую добавлять средства управления формы и устанавливать их свойства. Выберите Вид (View) — Панели инструментов (Toolbars) и отметьте Элементы управления (Form Controls) и Дизайн формы (Form Design). На панели инструментов Элементы управления щёлкните по кнопке Другие элементы (More Controls) для получения доступа к дополнительным видам элементов управления. Переключитесь в режим разработки с помощью переключателя Режим разработки (Design Mode) в панели управления Дизайн формы. Щёлкните по кнопке Группа (Group Box) и нарисуйте прямоугольник в документе, справа от вопроса. Откроется Мастер группового блока (Group Element Wizard), который проведёт вас через процесс создания группы. С помощью Мастера добавьте опции ответов и настройте другие параметры (их назначение вполне очевидно). После нажатия на кнопку Готово (Finish) в документ вставится групповой блок, содержащий радиокнопки с набранными ответами. Аналогичным образом нужно добавить групповые блоки с ответами на другие вопросы викторины. Добавим интерактивностиЕсли вы отключите режим разработки, то сможете протестировать форму, но она ещё не работает так, как нужно. Прежде всего, чтобы сделать форму интерактивной, необходимо добавить механизм, который будет информировать вас о корректности выбранного ответа. Это делается с помощью простого макроса. Выберите Сервис (Tools) — Макросы (Macros) — Управление макросами (Organize Macros) — OpenOffice.org Бэйсик (OpenOffice.org Basic), щёлкните 2 раза по имени документа, а затем по папке Standard. Нажмите кнопку Создать (New), дайте имя новому модулю (например, FormMacros) и введите следующий код в открывшемся окне редактора макросов: Sub CorrectAnswer Message="Ответ правильный!" MsgBox Message End Sub Sub IncorrectAnswer Message="Ответ неправильный!" MsgBox Message End Sub Код содержит два отдельных макроса (CorrectAnswer и IncorrectAnswer), которые отображают всплывающее окно с текстом «Ответ правильный!» или «Ответ неправильный!». Сохраните изменения и закройте редактор. Разгруппировка блока Следующим шагом будет привязка соответствующего макроса к каждой радиокнопке в группе. Чтобы можно было раздельно редактировать свойства радиокнопок в групповом блоке, сначала их нужно «разгруппировать». Выделите групповой блок, щёлкните по нему правой кнопкой мышки, и выберите Группировка (Group) — Изменить группу (Edit Group). После этого выделите первую радиокнопку, 2 раза щёлкните по ней или выберите Элемент управления (Control) в её контекстном меню. В окне Свойства (Properties) откройте закладку События (Events) и нажмите на кнопку Обзор (Browse) напротив поля Состояние изменено (Item Status Changed). Нажмите кнопку Макрос (Assign) и выберите соответствующий макрос, например, CorrectAnswer для радиокнопки, представляющей правильный ответ. Повторите этот шаг для других радиокнопок в группе. По окончанию, выберите группу, щёлкните по ней правой кнопкой мышки и выберите Выход из группы (Exit Group). Викторина практически готова, но подобно другим формам, она нуждается в кнопке Начать (Reset), которая очищает все ответы; чтобы это реализовать, вам необходим другой простой макрос. Выберите Сервис — Макросы — Управление макросами — OpenOffice.org Basic, выберите модуль FormMacros, нажмите кнопку Редактировать(Edit) и добавьте следующий код: Sub ResetControls oDoc = thisComponent oDrawPage = oDoc.getDrawPage() oForms = oDrawPage.getForms() oForm = oForms.getByName("Standard") oForm.Reset() End Sub Привязка макроса Вернитесь назад к документу, убедитесь, что вы в режиме разработки формы, нажмите Кнопка (Button) в панели инструментов Элементы управления и нарисуйте кнопку в документе. Пока кнопка выделена, щёлкните правой кнопкой мыши по ней и выберите Элемент управления. В окне Свойства на закладке Общие (General) в поле Текст (Label) введите «Начать». Щёлкните по закладке События, нажмите кнопку Обзор напротив поля Отпускание клавиши мыши (Mouse Button Released), и привяжите макрос ResetControls к этой кнопке. Выйдите из режима разработки — и наша викторина готова. Ну вот и всё. Как вы видите, создание интерактивных форм в редакторе Writer не особо и сложно. Как только вы изучите основы, сможете разработать более продвинутый документ.
Просмотров: 126
| |||||||||||||
Последнее обновление ( 09.10.2008 г. ) |
След. » |
---|
|
Комментариев нет:
Отправить комментарий