Лабораторные работы с использованием метода проета

Тема: Создание приложения - электронный учебник.

Создание теоретического и практического блока ЭУ.

Создание и отладка контролирующего блока ЭУ

Цель урока:

1. Рассмотреть подробно работу компонентов TreeView панели - Win32 и WebBrowser панели - Internet в среде программирования DELPHI.

2. Закрепить теоретический материал по данной теме.

3. Проверить уровень усвоенного материала.

ИНСТРУКЦИОННАЯ КАРТА

TreeView располагается на вкладке Win32. Компонент TTreeView представляет собой окно для отображения иерархических данных в виде дерева, в котором пользователь может выбрать нужный ему узел или узлы. Иерархическая информация может быть самой разной: структура некоторого предприятия, структура документации учреждения, структура отчета и т. п. С каждым узлом дерева могут быть связаны некоторые данные.

Основным свойством TTreeView, содержащим информацию об узлах дерева, является индексированный список узлов Items.

Свойство узла - State Index позволяет добавить вторую пиктограмму в данный узел, не зависящую от состояния узла.

WebBrowser располагается на вкладке Internet – используется для отображения текстовой информации в формате HTML.

ЗАДАНИЕ

1. Выбрать компонент TreeView располагающийся на вкладке Win32. В свойстве Items указываем каталоги и номера уроков. В поле State Index указываем фиксированные номера каждого из каталогов и номеров уроков. Например:

1

11

12

2

21 и т. д.

2. Выбрать на вкладке Internet –компонент WebBrowser. Здесь будет отображаться текстовая информация в формате HTML, для выбора урока.

НЕ нашли? Не то? Что вы ищете?

3. На компоненте WebBrowser разместить компонент GroupBox стандартной панели. В свойстве Caption наберите «Тестирование».

4. На этом компоненте расположите 5 компонентов RadioGroup. В свойстве Caption уберите имеющееся значение (здесь мы будет записывать формулировку вопроса). В свойстве Items поставьте 5 строчек – они соответствуют вариантам ответа.

5. В нижней части компонента WebBrowser расположите кнопку с надписью - «Результат тестирования». При нажатии на кнопку «Результат тестирования» должна появляться форма с текстом:

6. Для того чтобы указать, что файлы обучающей программы надо брать из той папки, где находится *.exe – файл, пропишите переменную

ProgramPath: String;

7. За реакцию на нажатие «веточек» «дерева» TreeView отвечает свойство OnChange в процедуре

procedure TForm1.TreeView1Change(Sender: TObject; Node: TTreeNode);

begin

WebBrowser1.Navigate(''); // по умолчанию в WebBrowser1 ничего не показывается в принципе между кавычек можно расположить любой текст

GroupBox1.Visible:=false; // Область показа теста делаем невидимой

Button1.Visible:=false; // Кнопка просмотра результатов теста так же невидима

// вызываем страницы html при выборе той или иной ветви

if node. StateIndex = 11 then

WebBrowser1.Navigate(ProgramPath+'урок1\1.html');

if node. StateIndex = 21 then

WebBrowser1.Navigate(ProgramPath+'урок1\2.html');

if node. StateIndex = 31 then

WebBrowser1.Navigate(ProgramPath+'урок1\3.html');

if node. StateIndex = 41 then

WebBrowser1.Navigate(ProgramPath+'урок1\4.html');

// При выборе теста

if node. StateIndex = 51 then

begin

groupBox1.Visible:=true; //включаем видимость области расположения тестирования

Button1.Visible:=true; //включаем видимость кнопки просмотра результата

Chtenie(ProgramPath+'урок1\1.txt'); //загружаем файл теста с помощью данной процедуры

end;

end;

8. Процедура, которая по названию файла загружает его на нашу форму

Procedure TForm1.Chtenie(name_file:string);

var

f: TextFile; // файл записей

n: integer;

begin

AssignFile(f, name_file);

{$I-}

Reset(f); //проверка открытия файл для чтения

{$I-}

//проверка на наличие ошибки

if IOResult <> 0 then

begin

ShowMessage('Ошибка открытия файла'); Exit;

end;

readln(f, rec.vopros); // прочитать 1 вопрос

Radiogroup1.Caption:= rec. vopros;

readln(f, rec. otvet1); // прочитать 1 ответ

Radiogroup1.Items[0]:= rec. otvet1;

readln(f, rec. otvet2); // прочитать 2 ответ

Radiogroup1.Items[1]:= rec. otvet2;

readln(f, rec. otvet3); // прочитать 3 ответ

Radiogroup1.Items[2]:= rec. otvet3;

readln(f, rec. otvet4); // прочитать 4 ответ

Radiogroup1.Items[3]:= rec. otvet4;

readln(f, rec. otvet5); // прочитать 5 ответ

Radiogroup1.Items[4]:= rec. otvet5;

// прочитать номер правильного ответа

readln(f, rec. otvet_plus);

ball[1]:=strtoint(rec. otvet_plus);

readln(f, rec. vopros); // прочитать 2 вопрос

и т. д. все вопросы с ответами

CloseFile(f);

end;

При этом надо прописать в var-е

rec: TTest; // запись, прочитанная из файла

ball: array [1..5] of integer;

а так же создать запись хранения вопросов

type

TTest = record

vopros,

otvet1, otvet2, otvet3, otvet4, otvet5: string[70];

otvet_plus:string[1];

end;

9. При нажатии на кнопку «Результат тестирования»

procedure TForm1.Button1Click(Sender: TObject);

var

i, j: integer;

begin

Form2.show; //отображаем результат теста

i:=0;

if RadioGroup1.ItemIndex=ball[1]-1 then i:=i+1;

if RadioGroup2.ItemIndex=ball[2]-1 then i:=i+1;

if RadioGroup3.ItemIndex=ball[3]-1 then i:=i+1;

if RadioGroup4.ItemIndex=ball[4]-1 then i:=i+1;

if RadioGroup5.ItemIndex=ball[5]-1 then i:=i+1;

Form2.Label1.Caption:= 'Всего правильно ответов - ' + inttostr(i);

if i=5 then j:=5 else if i=4 then j:=4 else

if i=3 then j:=3 else j:=2;

Form2.Label2.Caption:= ‘Оценка за пройденный тест - ' + inttostr(j);

end;

10. Откомпилировать проект.