
- •Разработка программы тестирования
- •Вопрос 1 (Форма 3): использование RadioGroup
- •Вопрос 2 (Форма 4 ): Использование Combobox
- •Вопрос 3 (Форма 5 ): Использование одной из RadioButton
- •Вопрос 4 (Форма 6 ): Использование одного из CheckBox
- •Вопрос 5 (Форма 7 ): Использование картинки Image
- •Вопрос 6 (Форма 8 ): Использование метода ручного вписывания значения
Разработка программы тестирования
Цели работы:
Закрепление теоретических сведений по работе с компонентами вкладки System.
Использование методов, свойств, событий для формы, мыши, клавиатуры.
Практическая часть:
Создать проект для запуска заставки тестирующей программы (Unit1.pas), которая будет отображаться на экране несколько секунд.
Составить блок, содержащий 8 вопросов с несколькими вариантами ответов на каждый. Вопросы и ответы взять из «Справки» по соответствующей программе.
Форма заставки (Форма 1)
implementation
uses Unit2;
{$R *.dfm}
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Hide;
Form2.Show;
Timer1.Enabled:=false;
end;
procedure TForm1.Timer2Timer(Sender: TObject);
begin
Gauge1.Progress:=gauge1.Progress+25;
end;
Форма регистрации (Форма 2)
var
Form2: TForm2;
str,str2:string;
implementation
uses Unit3;
Предустановки при запуске формы 2
procedure TForm2.FormCreate(Sender: TObject);
begin
Button2.Enabled:=false; //недоступна кнопка, пока не введены личные данные
Button1.Enabled:=false; // недоступна кнопка, пока не введены личные данные
end;
Внесение изменений в поле «Введите ФИО»
procedure TForm2.LabeledEdit1Change(Sender: TObject);
begin
If (LabeledEdit1.Text<>'') and (LabeledEdit2.Text<>'') then Button1.Enabled:=true
else Button1.Enabled:=false;
end;
procedure TForm2.LabeledEdit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
If (LabeledEdit1.Text<>'') and (LabeledEdit2.Text<>'') then Button1.Enabled:=true
else Button1.Enabled:=false;
end;
Внесение изменений в поле «Введите группу»
procedure TForm2.LabeledEdit2KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
If (LabeledEdit1.Text<>'') and (LabeledEdit2.Text<>'') then Button1.Enabled:=true
else Button1.Enabled:=false;
end;
procedure TForm2.Button1Click(Sender: TObject);
begin
str:=LabeledEdit1.Text;
str2:=LabeledEdit2.Text;
button2.Enabled:=true;
Memo1.Lines.Add(str+' '+str2);
end;
Начать тестирование
procedure TForm2.Button2Click(Sender: TObject);
begin
Form2.Hide;
Form3.Show;
end;
Завершение (закрытие) приложения
procedure TForm2.Button3Click(Sender: TObject);
begin
Application.Terminate
end;
Сохранить введенные данные
procedure TForm2.Button4Click(Sender: TObject);
begin
With SaveDialog1 do
if Execute then begin
Memo1.Lines.SaveToFile(FileName);
Caption:='Сохранить - '+ExtractFileName(FileName);
end;
end;
Вопрос 1 (Форма 3): использование RadioGroup
var
Form3: TForm3;
n,k:integer;
m:integer;
implementation
uses Unit4, Unit9, Unit8;
Первоначальные установки:
Метка «Вопрос», радиогруппа «Варианты ответов» и кнопка «Принять» первоначально невидимы.
procedure TForm3.FormCreate(Sender: TObject);
begin
label7.Visible:=false;
RadioGroup1.Visible:=false;
button4.Visible:=false;
end;
Событие на кнопку «Начать тестирование». Первоначальные установки: Номер вопроса – 1; Количество правильных ответов - 0
procedure TForm3.Button1Click(Sender: TObject);
begin
Label6.Caption:='1';
Label5.Caption:='0';
n:=30;
label7.Visible:=true;
RadioGroup1.Visible:=true;
button4.Visible:=true;
button1.Enabled:=false;
end;
procedure TForm3.Timer1Timer(Sender: TObject);
begin
n:=n-1;
MessageDlg('Время закончилось', mtConfirmation,[mbOk],0);
Button4.Caption:='Далее';
end;
Событие на кнопку «Принять», оценивание правильного ответа и вывод соответствующего сообщения.
procedure TForm3.Button4Click(Sender: TObject);
begin
begin
if k=1 then
begin
MessageDlg('Вы ответили правильно', mtConfirmation,[mbOk],0);
Label5.Caption:='1';
form4.Label5.Caption:='1';
Button4.Caption:='Далее';
end
else
begin
MessageDlg('Вы ответили неправильно! Правильный - MAC OC', mtConfirmation,[mbOk],0);
Button4.Caption:='Далее';
form4.Label5.Caption:='0';
end
end;
begin
n:=30;
hide;
form4.show;
end;
end;
Выбор ответа из радиогруппы
procedure TForm3.RadioGroup1Click(Sender: TObject);
begin
case RadioGroup1.ItemIndex of
0: k:=1;
1: k:=2;
2: k:=3;
end;
end;
Вызов модальной формы «О программе» (кнопка «О программе»)
procedure TForm3.Button2Click(Sender: TObject);
begin
AboutBox.showmodal;
end;
procedure TForm3.Timer2Timer(Sender: TObject);
begin
m:=m+1;
form8.Label9.Caption:=inttostr(m);
end;
Выход из приложения (кнопка «Выход»)
procedure TForm3.Button3Click(Sender: TObject);
begin
Application.Terminate
end;