Для объявления глобальных переменных, доступных всем элементам приложения и используемых в тексте программного кода, необходимо к проекту добавить модуль формы:
- в меню команд VB 6.0 выбрать команду Project ;
- в раскрывшемся списке выполнить команду Add Module . Модуль (Module1) будет добавлен в список модулей проекта.
Программный код обработки событий в приложении «АРМ преподавателя» использует следующие переменные памяти:
1. z — запись типа vop, состоящая из трех полей, в которых размещены символьные строки для хранения:
- v — вопроса,
- о — ответов,
- n — правильного ответа;
2. nvz — переменная для хранения номера вопроса (записи) в файле прямого доступа;
3. nvv — переменная, в которой содержится номер вопроса (записи), вызываемого из файла прямого доступа, для просмотра или редактирования.
Тексты кодов приложения представлены в листинге 1.
Листинг 1.
(General) -> (Declarations)
Public nvz As Integer, nvv As Integer
Private Sub cmdVyz_Click()
Dim z As vop
nvv = Val(txtNv2.Text)
txtTexv2.Text = ""
txtTexv2.Refresh
txtTexo2.Text = ""
txtTexo2.Refresh
txtNpo2.Text = ""
txtNpo2.Refresh
Open "c:\let\" + txtNlet.Text + ".txt" For Random As #1 Len = 2048
If txtNlet.Text = "" Then
MsgBox ("Где имя работы?")
GoTo m1
End If
If nvv = 0 Then
MsgBox ("Где номер вопроса?")
GoTo m1
End If
MsgBox ("Открываем файл!")
Get #1, nvv, z
cmdVyz.Caption = "Готово!"
For i = 1 To 100000000
Next i
cmdVyz.Caption = "Bызов"
txtTexv2.Text = z.v
txtTexv2.Refresh
txtTexo2.Text = z.o
txtTexo2.Refresh
txtNpo2.Text = z.n
txtNpo2.Refresh
m1: Close 1
z.v = ""
z.o = ""
z.n = ""
txtNv2.SetFocus
m2: End Sub
Private Sub cmdZap_Click()
Dim z As vop
z.v = txtTexv1.Text
z.o = txtTexo1.Text
z.n = txtNpo1.Text
If optZ.Value = False Then
MsgBox ("Подтвердите № записи!")
txtNvl.SetFocus
GoTo m2
End If
Open "c:\let\" + txtNlet.Text + ".txt" For Random As #1 Len = 2048
If z.v = "end" Then End
If z.v = "" Then
MsgBox ("Где вопрос?")
GoTo m1
End If
If z.o = "" Then
MsgBox ("Где ответы?")
GoTo m1
End If
If z.n = "" Then
MsgBox ("Где правильный ответ?")
GoTo m1
End If
If nvz = 0 Then
MsgBox ("Где номер вопроса?")
GoTo m1
End If
If txtNlet.Text = "" Then
MsgBox ("Где имя работы?")
GoTo m1
End If
Put #1, nvz, z
cmdZap.Caption = "Готово!"
For i = 1 To 1000000
Next i
cmdZap.Caption = "3апись"
m1: Close 1
optZ.Value = False 'c6poc флажка
txtTexv1.Text = " "
txtTexo1.Text = " "
txtNpo1.Text = " "
txtNv1.Text = " "
txtTexv1.SetFocus
m2: End Sub
Private Sub Form_Load()
i=0
End Sub
Private Sub Form_Unload(Cancel As Integer)
End Sub
Private Sub mnuExit_Click()
End
End Sub
Private Sub mnuHelpAbout_Click()
frmHelpAbout.Show 1
End Sub
Private Sub mnuHelpInst_Click ()
frmHelpInst.Show 1
End Sub
Private Sub optR_Click()
Dim z As vop
nvv = Val(txtNv2.Text)
If txtNlet.Text = "" Then
MsgBox ("Где имя работы?")
GoTo m1
End If
txtTexv1.Text = "" 'очистка полей записи
txtTexv1.Refresh
txtTexo1.Text = ""
txtTexo1.Refresh
txtNpo1.Text = ""
txtNpo1.Refresh
txtNv1.Text = ""
txtNv1.Refresh
Open "c:\let\" + txtNlet.Text + ".txt" For Random As #1 Len = 2048
If nvv = 0 Then
MsgBox ("Где номер вопроса?")
GoTo m1
End If
Get #1, nvv, z
txtTexv1.Text = z.v
txtTexv1.Refresh
txtTexo1.Text = z.o
txtTexo1.Refresh
txtNpo1.Text = z.n
txtNpo1.Refresh
txtNv1.Text = txtNv2.Text
txtNv1.Refresh
txtTexv2.Text = "" 'очистка полей записи
txtTexv2.Refresh
txtTexo2.Text = ""
txtTexo2.Refresh
txtNpo2.Text = ""
txtNpo2.Refresh
txtNv2.Text = ""
txtNv2.Refresh
txtTexv1.SetFocus
m1: Close 1
z.v = ""
z.o = ""
z.n = 0
optR.Value = False 'сброс флажка
txtTexv2.BackColor = &H80000005
txtTexo2.BackColor = &H80000005
txtNpo2.BackColor = &H80000005
m2: End Sub
Private Sub optZ_Click()
nvz = Val(txtNv1.Text)
txtTexv1.BackColor = QBColor(15)
txtTexo1.BackColor = QBColor(15)
txtNpo1.BackColor = QBColor(15)
End Sub
Private Sub txtNlet_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
txtNv1.Refresh
txtNv1.SetFocus
End If
End Sub
Private Sub txtNvl_DblClick()
txtTexv1.Text = ""
txtTexv1.Refresh
txtTexo1.Text = ""
txtTexo1.Refresh
txtNpo1.Text = ""
txtNpo1.Refresh
txtTexv1.SetFocus
End Sub
Private Sub txtNv2_DblClick()
txtTexv2.Text = ""
txtTexv2.Refresh
txtTexo2.Text = ""
txtTexo2.Refresh
txtNpo2.Text = ""
txtNpo2.Refresh
End Sub
Коды для Modulel
(General) (Declarations)
Type vop
v As String
o As String
n As String
End Type
Dim z As vop
Рекомендации по тестированию работы приложения
При тестировании экранной формы рекомендуется точно следовать порядку работы пользователя, изложенного в инструкции к приложению. В целях тестирования приложения при создании файла контрольной работы рекомендуется вводить записи следующего содержания:
№ записи | Содержание записи | ||
Вопрос | Ответы | № правильного ответа | |
1 | Вопрос 1 | Ответ 1 Ответ 2 Ответ 3 | 2 |
2 | Вопрос 2 | Ответ 1 Ответ 2 Ответ 3 | 1 |
3 | Вопрос 3 | Ответ 1 Ответ 2 Ответ 3 | 3 |
и т.д. | |||
19 | Вопрос 19 | Ответ 1 Ответ 2 Ответ 3 | 1 |
ВНИМАНИЕ! При вводе № правильного ответ не допускается оставлять пробел перед введенным значением, т.е. следует начинать ввод с первой позиции текстового поля.
Дата: 2019-04-23, просмотров: 206.