![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Private Sub Form_Load()
Присваиваем значение переменной NomVopros единицу (мы же хотим начинать с первого вопроса) и устанавливаем значение нашего флага в значение False. Изначально мы предполагаем, что файл с номером вопроса 1 существует: NomVopros = " 1" Выводим в Label1 для пользователя номер обрабатываемого вопроса Label1.Caption = " Вопрос № " & NomVopros запускаем нашу процедуру загрузки файла Loading и конец процедуре Form_Load Loading Теперь создаем процедуру для кнопки Command1 - это просто запись в файл с помощью оператора Write#. Только перед записью мы нашим переменным присвоим текущие значения Текстбоксов Private Sub Command1_Click() ну и открываем и записываем файл под именем " номер текущего вопроса.txt" F = FreeFile Поскольку мы файл записали, значит он существует, устанавливаем наш флаг в положение False и конец процедуре. Flag = False Остаются две кнопки Command2 и Command3, которые служат для передвижения по файлам (то бишь вопросам). Здесь я использую такой принцип: при нажатии кнопки вверх (Command2) имя файла, он же вопрос, уменьшается на единицу, а при нажатии кнопки вниз (Command3)- увеличивается на единицу. После этого происходит переход к процедуре Loading, которая загружает новый файл (вопрос). Однако здесь надо поставить определенные ограничения. Для Command2: Private Sub Command2_Click() А вот с другой кнопкой Command3 дело обстоит несколько сложнее. Нам нужно, чтоб мы двигались вперед до тех пор, пока не дойдем до первого несуществующего файла (нам же нужно создавать новые впросы для тестирования) и на нем стоп! Для этого мы проверяем выполнение двух условий: Private Sub Command3_Click() Здесь мы используем оператор Exit Sub, который позволит нам выйти из процедуры, не выполняя ее до конца. Хочу обратить твое внимание, что в коде программы в трех местах встречается одна и та же строка Label1.Caption = " Вопрос № " & NomVopros. Это недопустимая халатность. На работоспособности программы это, конечно не скажется, но с точки зрения программирования, каждая лишняя строчка (особенно если их тысячи) - это смерть разрабатчикам, т.е. нам. Попробуйте убрать ее и поставить в одном месте, где бы она " работала за троих". В исходнике это сделано. Далее для красоты ты можешь надписи на кнопках Command2 и Command3 заменить стрелочками. Я вот нарисовал их просто в Paint'e. Получилось два маленьких bmp-файла Up.bmp и Down.bmp. Чтобы поставит их в кнопку нужно свойство кнопки Style в состояние 1 - Graphical, очистить свойство Caption и в свойстве Picture нажать на кнопочку с тремя точечками. У тебя появиться окно " загрузить рисунок", где можно благополучно выбрать графический файлик. Это файлик сохранится в твоей программе и таскать его за собой больше не надо, но у меня в исходнике они лежат, как бы для примера. Ну вот, с первой частью программы мы закончили. А теперь неплохо-бы сделать форму собственно для тестирования. Для этого в нашу программу надо добавить еще одну форму. Вверху общего окна VB надо нажать на кнопку со словом Проект и в выпавшем меню кликнуть по первой строке " Добавить форму". Тут же откроется окно " Добавить форму" и первая картинка называется " Форма". Выдели ее, если она не выделена и нажми кнопку в этом же окне " Открыть" (или там Open). И хрясть, перед вами новая форма Form2, ну точно такая же как и старая. Сделаем все почти по аналогии с первой формой. Кладем на Form2, Label1, Text1, Command1 и Frame1. После этого, сразу во Frame1, а не на форму кладем три радиокнопки Option1, Option2 и Option3. Вот и готово. Кнопка Command1 будет называться " Ответить". Теперь объявляем переменные, аналогичные первой форме Option Explicit плюс еще SumAns для суммирования баллов
|