Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

lab / Создание теста

.pdf
Скачиваний:
3
Добавлен:
21.03.2015
Размер:
291.02 Кб
Скачать

right:=0; wrong:=0; end;

11 Выполним обработку события OnClick нажатия кнопки Button на главной форме

(procedure TMain.ButtonClick(Sender: TObject);): procedure TMain.ButtonClick(Sender: TObject);

begin

if answer.ItemIndex = -1 then showmessage('Вы Не Выбрали Ответ!') else

if not EOF(txt) then begin result.Cells[nq-1,0] := inttostr(nq); if answer.ItemIndex = question.Tag then

begin result.Cells[nq-1,1] := '+'; right:=right+1; end else

begin result.Cells[nq-1,1] := '-'; wrong:=wrong+1; end; nq:=nq+1;

Qnumber.Caption:='Вопрос № '+IntToStr(nq); statusbar1.Panels[1].Text := 'Вопрос № '+inttostr(nq)+' из '+inttostr(total);

nextq;

Button.SetFocus; end

else begin

result.Cells[nq-1,0] := inttostr(nq); if answer.ItemIndex = question.Tag then

begin result.Cells[nq-1,1] := '+'; right:=right+1; end else

begin result.Cells[nq-1,1] := '-'; wrong:=wrong+1; end; panel4.BringToFront;

timer2.Enabled := false;

Nright.Caption := 'Верных Ответов >>> '+inttostr(right); Nwrong.Caption := 'Неверных Ответов >>> '+inttostr(wrong); Nnoans.Caption := 'Не Отвечено >>> 0';

end;

end;

Комментарии к процедуре. Сначала мы выполняем проверку, выбран ли ответ. Если ответ не выбран, то выдается сообщение «Вы не выбрали ответи переход к остальным вопросам не разрешается.

12 Теперь вернемся к ранее созданной процедуре обработки события OnTimer для таймера Timer2 (procedure TMain.Timer2Timer(Sender: TObject);) procedure TMain.Timer2Timer(Sender: TObject);

var time : string; begin

if (sec > 0) then sec:=sec-1 else

if (sec = 0) and (min > 0) then begin

min:=min-1; sec:=59; end

else

if (sec = 0) and (min = 0) and (hour > 0) then begin

hour:=hour-1; min:=59; sec:=59;

end

else if (sec = 0) and (min = 0) and (hour = 0) then begin

result.Cells[nq-1,0] := inttostr(nq); panel4.BringToFront;

PDF created with pdfFactory trial version www.pdffactory.com

timer2.Enabled := false;

for cnt := nq+1 to total do result.Cells[cnt-1,0] := inttostr(cnt); for cnt := nq to total do result.Cells[cnt-1,1] := '0'; Nright.Caption := 'Верных Ответов >>> '+inttostr(right); Nwrong.Caption := 'Неверных Ответов >>> '+inttostr(wrong); Nnoans.Caption := 'Не Отвечено >>> '+inttostr(total+1-nq);

end;

if hour < 10 then time := '0'+inttostr(hour) else time := inttostr(hour); time:=time+':';

if min < 10 then time := time+'0'+inttostr(min) else time := time+inttostr(min);

time:=time+':';

if sec < 10 then time := time+'0'+inttostr(sec) else time := time+inttostr(sec);

Statusbar1.Panels[0].Text := 'Время: '+time; end;

Вместо простого отключения таймера мы прописали проверку на правильность вывода результата.

13 В заключение вернемся к ранее созданной процедуре обработки события

OnShow главной формы (procedure TMain.FormShow(Sender: TObject);): procedure TMain.FormShow(Sender: TObject);

begin blackscreen.Show; main.Show;

blackscreen.Enabled:=false;

statusbar1.Panels[1].Text:='Вопрос № '+inttostr(nq)+' из '+inttostr(total); panel4.BringToFront;

panel3.BringToFront;

panel2.BringToFront;

panel1.BringToFront;

end;

Сохраните проект.

ПОЗДРАВЛЯЕМ ВАС С ЗАВЕРШЕНИЕМ РАБОТЫ НАД ТЕСТЕРОМ J A

PDF created with pdfFactory trial version www.pdffactory.com

ЗАЩИТА «ТЕСТЕРА» ОТ ДОСТУПА ТЕСТИРУЕМЫХ

Можете убрать кнопки выхода или другие декоративные элементы, или добавить свои, одним словом, как хотите!

Кстати для защиты от ламеров можно спрятать иконки рабочего стола и Taskbar. Вот

код:

ShowWindow(FindWindow('Shell_TrayWnd', nil), sw_hide); {спрятать панель задач} ShowWindow(FindWindow('Shell_TrayWnd', nil), sw_show); {показать панель задач}

Для значков придется создать процедуру:

procedure ShowDesktop(const YesNo : boolean); var h : THandle;

begin

h:= FindWindow('ProgMan', nil); h:= GetWindow(h, GW_CHILD);

if YesNo = True then ShowWindow(h,SW_SHOW)

else ShowWindow(h,SW_HIDE); end;

Обращение к ней:

ShowDesktop(False); {Убрать Иконки}

ShowDesktop(False); {Показать Иконки}

Прописав такую защиту, вы лишите тестируемых возможности найти ответы. Ну, по крайней мере, усложните им жизнь! :)

PDF created with pdfFactory trial version www.pdffactory.com

Соседние файлы в папке lab