Термінова допомога студентам
Дипломи, курсові, реферати, контрольні...

Разработка інтерактивною середовища обучения

РефератДопомога в написанніДізнатися вартістьмоєї роботи

Усі константы-массивы що неспроможні утримувати файлових змінних будь-якому уровне. Користувач вибирає потрібний йому урок і натискає кнопку «Завантажити». Після цього. Для завдання константы-записи необхідно заповнити її поля відповідно до синтаксису: Для визначення процедурної константи потрібна процедура з підходящими параметрами. Усі константы-записи що неспроможні утримувати файлових змінних… Читати ще >

Разработка інтерактивною середовища обучения (реферат, курсова, диплом, контрольна)

Разработка інтерактивною середовища навчання роботі у Borland Delphi.

Введение

.

На Землі щогодини зростає кількість комп’ютерів. Вони з.

програмами, кількість які також зростає. Написані все програми з.

використанням різних мов програмування — З++, Delphi, Assembler. Вивчення.

таких мов мало поступається за складністю вивченню звичайних, людських. Це.

дуже складний і трудомісткий процес.

На його полегшення і спрощення створюються різні навчальні програми.

Комп’ютер вчить людини. Такий «вчитель» будь-коли втомлюється, завжди об'єктивний,.

не обижается…

У цьому роботі представлена подібна програми, здатна (на мою думку),.

навчити початківця програміста основам візуальної середовища Delphi й мови.

Паскаль.

1 Опис программы.

1. 1 Основні характеристики.

Вже згадана програма має зокрема можливість використання уроків, які у.

файлах, що дозволяє створювати уроки, не змінюючи коду программы.

Файл уроку є текстовий файл з розширенням .LES; у ньому стримається.

текст уроку і спеціальні команди, змушують програму, виконувати деякі.

дії, наприклад, виводити текст таким-то кольором, змінювати розмір шрифту,.

вставляти картинки. Опис команд буде наведено ниже.

1. 2 Керівництво для пользователя.

Що Здійснюється файл називається LD. EXE. Після його запуску на екрані з’являється.

окно.

У ньому «повзе» напис: «Ласкаво просимо до програму Learn Delphi!!!». Для.

входу у програмі треба натиснути кнопку «ОК». Наступне вікно показано на рис. 1. 2:

Малюнок 1. 2 — Вікно вибору потрібного урока.

Користувач вибирає потрібний йому урок і натискає кнопку «Завантажити». Після цього.

він бачить основне вікно, у якому завантажена перша сторінка уроку. Це вікно.

представлене рис. 1. 3 (стор. 8).

1. 3 Опис команд формату .LES.

Як було вказано вище, ця програма має спеціальну систему команд.

Вони діляться втричі типа:

Текстовые.

Графические.

Логические.

Усі команди предваряются символами /, щоб їх можна було від звичайного.

тексту, виведеного на екран.

Усі, що ні має у початку символів /: буде выведено!

Малюнок 1. 3 — Вікно урока.

1. 3. 1 Текстові команды.

Таблиця 1. 1 — Текстові команды.

/:size.

розмір шрифтаУстанавливает розмір шрифту. Розмір вводиться відразу після.

команди.

Пример:

Таблиця 1. 1 — Текстові команди (продолжение).

/:size.

/:color.

цветУстанавливает колір виведеного тексту. Підтримує основні кольору:

red, blue, black, yellow, green, grey.

Пример:

/:color.

red.

/:style.

стильУстанавливает стиль виведеного текста:

1 — нормальний,.

2 — полужирный,.

3 — подчеркнутый,.

4 — курсив,.

5 — перечеркнутый.

Пример:

/:style.

/:font.

имяЗагружает інший шрифт.

Пример:

/:font.

Times New Roman.

/:newpageДает знати системі, що далі належить нова страница.

1. 3. 2 Графічні команды.

У цьому версії програми є лише одне графічна команда — /:picture,.

яка завантажує й поміщає за зазначеними координатам картинку з файла в.

форматі .BMP.

Синтаксис:

/:Picture.

X-координата рисунка.

Y-координата. рисунка.

ім'я файла рисунка.

На один аркуш можнопоместить близько трьох картинок. Цього здебільшого.

достаточно.

1. 3. 3 Логічні команды.

Логічний команда у цій версії також. Це /:question.

Синтаксис:

/:question.

текст вопроса.

пошук правильної відповіді (1- «Так «2- «Ні «).

Результатом виконання є присутність сторінка питання, обведенного.

подвійний червоною рамкою. Праворуч, після тексту питання, перебувають дві кнопки -.

«Так» і «Ні». Користувач натискає на кнопку, яка символізує, з його,.

юзера, мненеию, пошук правильної відповіді і кнопки відразу стають неактивними.

Програма посчитывает кількість правильних і схиблених відповідей та наприкінці.

роботи виставляє оценку.

На сторінці заборонена розміщувати довше вопроса!

Версія програми, подана у курсової роботі є DEMO-версией,.

тому загалом у уроці допускається лише однієї логічна команда.

4 Опис внутрішньої структури программы.

1. 4. 1 Загальна организация.

Програма має чотири вікна: frmMain, frmRun, frmLesson і frmRes. У табл. 1. 2.

представлені функції, що їх кожним із них:

Таблиця 1. 2 Функції, що їх вікнами в программеНазвание окнаФункции,.

що виконує в программе.

frmMain Дане вікно з’являється, коли користувач запускає програму.

Воно є ніби запрошенням на роботу. Показано дане вікно на рис. 1.

1.

FrmRunПосле frmMain користувач потрапляє у вікно frmRun. Ось він може.

вибрати потрібний урок і завантажити його вийти з програми. Показано воно.

на рис. 1. 2.

FrmLessonОсновное вікно на навчання. У ньому виводиться текст уроку, все.

картинки і питання. У модулі цього вікна описані всі підпрограми для.

обробки файлів уроків. Показано це немовбито вікно на рис. 1. 3.

FrmResПосле проходження уроку користувач повинен знати, як і засвоїв.

матеріал. У цьому вікні вміщена таблиця із кількістю запитань і правильних.

відповідей. Це очнь просте вікно, тому представлене рисунках.

1. 4. 2 Алгоритми, гідні рассмотрения.

Однією з вдало реалізованих алгоритмів автор вважає реалізацію розпізнавання.

команд. У додатку На кінці записки представлений вихідний код програми, в.

якому можна тепер розглянути ці процедури. Текст виводиться з вікна з допомогою.

об'єкта Canvas. Це викликано потребою поміщати картинки впереміж із.

текстом. Найпростіше реалізується така ідея із застосуванням Canvas’a. При.

тестуванні проблему: при перемалюванні вікна (у разі тимчасового.

перекриття іншим вікном тощо. п.) об'єкти, виведені з допомогою Canvas’a, не.

перерисовывались. Щезали великі фрагменти тексту. У кінців-кінців проблема.

вирішена: запускається оброблювач події OnPaint.

Кожна сторінка уроку завантажується у спеціальну зміну (процедура LoadPage),.

і потім виводиться на екран процедурою DrawPage. У цьому і розпізнаються команды.

4. 3 Перспективы.

Ця програма, на мою думку, є досить перспективним «прожектом».

У наступних версіях програми, які, безсумнівно, з’являться, будуть.

удосконалені можливості тестування, додадуться кілька логічних і.

графічних команд, а трохи згодом — і спеціальний редактор спрощення створення.

уроков.

З іншого боку, використовуючи можливості Windows, можна буде потрапити «змусити» навчалку.

взаємодіяти і системи програмування Delphi, що підвищить наочність.

прикладів і тоді Learn Delphi здатна готуватиме непоганих фахівців у.

області комп’ютерних технологий.

Але це ще все! LD — універсальна система, в файл уроку можна записати.

что-угодно, отже застосовувати цей засіб можна й на навчання іншим.

предметів, навіть дещо віддаленим від інформатики, як, наприклад, історія,.

іноземні языки.

2 Типізовані константы.

2. 1 Загальна характеристика.

Мова Паскаль, і, Делфі, має спеціальний вид констант -.

типізовані. На відміну від, констант, можуть утримувати масиви,.

покажчики, запису і значення процедурних типів. При встановленої директиві.

компілятора {$J+} вони поводяться як звичайні инициализированные перемінні. При.

{$J-} значення що неспроможні изменяться.

Синтаксис: Const имя_константы: тип =значение.

Пример:Const Max: integer=200.

2. 2 Константы-массивы.

Щоб поставити якусь константу-массив, потрібно описати значення всіх елементів.

Значення описуються в круглі дужки, через кому. Например:

Const Digits: array[1.5] of byte=(1, 2, 3, 4, 5).

У цьому прикладі оголошується константа-массив Digits типу Byte. Їй відразу.

присвоюються числа від 1 до 5.

Константы-массивы часто йдуть на завдання рядків, які символом.

#0. І тут опис виглядає так:

Const Stroka: array[1.5] of char=(‘Hello').

Константою може бути багатомірний масив. І тому кожне його вимір

міститься у круглі дужки. Пример:

type TCube = array[0.1, 0.1, 0.1] of Integer;

const Maze: TCube = (((0, 1), (2, 3)), ((4, 5), (6,7))).

Складається масив Maze, где:

Maze[0,0,0] = 0.

Maze[0,0,1] = 1.

Maze[0,1,0] = 2.

Maze[0,1,1] = 3.

Maze[1,0,0] = 4.

Maze[1,0,1] = 5.

Maze[1,1,0] = 6.

Maze[1,1,1] = 7.

Усі константы-массивы що неспроможні утримувати файлових змінних будь-якому уровне.

2. 3 Константы-записи.

Для завдання константы-записи необхідно заповнити її поля відповідно до синтаксису:

Имя_поля: значення. Значення поділяються точками з коми і всі вираз.

міститься у круглі дужки. Значення мають бути представлені константами. Поля.

повинні бути перечисленны у порядку, що не ониразмещены описання записи.

Поле-описатель, коли таке є, має бути заповнене; у разі запису із.

варіантами лише варіант, обраний описателем може использоваться.

Примеры:

type.

TPoint = record.

X, Y: Single;

end;

TVector = array[0.1] of TPoint;

TMonth = (Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec);

TDate = record.

D: 1.31;

M: TMonth;

Y: 1900.1999;

end;

const.

Origin: TPoint = (X: 0.0; Y: 0.0);

Line: TVector = ((X: -3.1; Y: 1.5), (X: 5.8; Y: 3.0));

SomeDay: TDate = (D: 2; M: Dec; Y: 1960);

Усі константы-записи що неспроможні утримувати файлових змінних будь-якому уровне.

2. 4 Процедурні константы.

Для визначення процедурної константи потрібна процедура з підходящими параметрами.

Например:

function Calc (X, Y: Integer): Integer;

begin.

end;

type TFunction = function (X, Y: Integer): Integer;

const MyFunction: TFunction = Calc;

Після такої описи, функція вызывается:

I := MyFunction (5, 7).

Ви також можете привласнити константі значення nil.

2. 5 Константы-указатели.

Такі константи містять адресу у пам’яті перемінної чи підпрограми. За умов їх.

оголошенні констант слід уважно стежити те, щоб адресу, який вона вказує,.

використовувався. Примеры:

Константа містить адресу переменной:

const PI:Integer = @I;

Константа містить адресу подпрограммы:

const PF: Pointer = @MyFunction;

Можете оголосити константу типу PChar зі рядковим значенням, т. до. литералы.

зберігаються у пам’яті як глобальні константы.

Адреси локальних (розміщених у стеці) і динамічних змінних неможливо знайти.

перебувають у таку константу.

2. 6 Приклади программ.

Нижче наведені приклади програм, використовують типізовані константи. Вони.

написані Delphi, але у вигляді консольного докладання — ніж захаращувати.

текст програм описом форм та, яких дана завдання.

має отношения.

Тексти программ-примеров можна побачити на дискеті з курсовою роботою в директорії.

EXAMPLES.

Приклад 1.

program Example1;

{$APPTYPE CONSOLE}.

{Ця программа-пример демонструє застосування констант-массивов. Перетворює.

чисельний формат дати звичайний, під назвою месяца}.

uses.

SysUtils;

const month: array[1.12] of.

string[20]=(«January », «February », «March », «April », «May » ,.

" June ", «July », «August », «September », «October », «November », «December »);

var d: string[10];

s:string[30];

s1:string[3];

begin.

write («Enter date (dd:mm:yyyy): »);

readln (d);

p.s:= «» ;

if copy (d, 1,1) «1 «then begin.

if copy (d, 2,1)= «1 «then s1:= «`st «else.

if copy (d, 2,1)= «2 «then s1:= «`nd «else.

if copy (d, 2,1)= «3 «then s1:= «`rd «.

end else s1:= «`th » ;

s:=copy (d, 1,2)+s1+ «of «+month[strtoint (copy (d, 4,2))]+ «» +copy (d, 7,4);

writeln (s);

readln.

end.

Приклад 2.

unit Example2frm;

{Цей приклад показывает, как застосовуються константы-записи. Тут будується.

багатокутник (із застосуванням методу Polyline об'єкта Canvas), а координати вершин.

багатокутника зберігають у масиві констант-записей.}.

interface.

uses.

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,.

StdCtrls;

type.

TForm1 = class (TForm).

Button1: TButton;

procedure Button1Click (Sender: TObject);

private.

{ Private declarations }.

public.

{ Public declarations }.

end;

var.

Form1: TForm1;

PolyLines:array[1.4] of tpoint=((x:170;y:20); INSERT INTO `ref` (`id_predmet`, `name_predmet`, `id_ref`, `name_ref`, `text_ref`) VALUES (x:320;y:320); INSERT INTO `ref` (`id_predmet`, `name_predmet`, `id_ref`, `name_ref`, `text_ref`) VALUES (x:20;y:320),.

(x:170;y:20));

implementation.

{$R *.DFM}.

procedure TForm1. Button1Click (Sender: TObject);

begin.

form1.Canvas.Pen.Width:=3;

form1.canvas.Polyline (polylines).

end;

end.

Вікно цієї программы-примера наведено на рис. 2. 1 (стор. 20):

Малюнок 2. 1 — Вікно программы-примера.

Выводы.

У цьому роботі представлена освітня програма, розроблена серед.

програмування Borland Delphi 5. До неї додається файл уроку, описывающего.

основи Delphi. Але загалом, неї навчання можна «змусити» навчати.

какой-угодно дисципліни — на те дуже створити файли уроків та не записати.

їх назви в файл конфигурации.

У процесі вироблення програми детально вивчені графічні можливості Делфі і.

об'єкта Canvas.

В другій частині роботи розглянуті типізовані константи в Паскале, їх.

застосування. Дани приклади программ.

Додаток А.

Нижче дано вихідний код всіх модулів программы.

unit Mainfrm;

interface.

uses.

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,.

ExtCtrls, StdCtrls;

type.

TfrmMain = class (TForm).

85181: T8518_;

Timer1: TTimer;

Button1: TButton;

procedure Timer1Timer (Sender: TObject);

procedure FormCreate (Sender: TObject);

procedure Button1Click (Sender: TObject);

private.

{ Private declarations }.

public.

{ Public declarations }.

end;

var.

frmMain: TfrmMain;

implementation.

uses runfrm;

{$R *.DFM}.

var x: integer;

procedure TfrmMain. Timer1Timer (Sender: TObject);

var r: trect;

begin.

r.Left:=x;

r.Top:=150;

r.Bottom:=170;

r.Right:=frmmain.Width;

frmmain.canvas.fillrect®;

frmmain.canvas.TextOut (x, 151, «Ласкаво просимо до програму „Learn Delphi “ !!! »);

dec (x, 3);

if x.

end;

procedure TfrmMain. FormCreate (Sender: TObject);

begin.

frmmain.canvas.Brush.Color:=clsilver;

frmmain.canvas.pen.color:=clblue;

x:=frmmain.width;

frmmain.canvas.font.name:= «Times New Roman » ;

frmmain.canvas.font.size:=19;

frmmain.canvas.font.color:=clblue.

end;

procedure TfrmMain. Button1Click (Sender: TObject);

begin.

frmmain.hide;

frmrun.show;

end;

end.

unit runfrm;

interface.

uses.

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,.

StdCtrls, checklst;

type.

Tfrmrun = class (TForm).

lblessons: TListBox;

Label1: TLabel;

Button1: TButton;

Button2: TButton;

procedure FormClose (Sender: TObject; var Action: TCloseAction);

procedure FormCreate (Sender: TObject);

procedure lblessonsDblClick (Sender: TObject);

procedure lblessonsKeyPress (Sender: TObject; var Key: Char);

procedure Button2Click (Sender: TObject);

procedure Button1Click (Sender: TObject);

private.

{ Private declarations }.

public.

{ Public declarations }.

end;

var.

frmrun: Tfrmrun;

lessonname:string[40];

implementation.

uses Mainfrm, lessonfrm;

{$R *.DFM}.

type.

tconfig=record.

name:string[50];

filename:string[40];

end;

var names: array[1.100] of string[40];

procedure loadlesson;

begin.

lessonname:=names[frmrun.lblessons.itemindex+1];

frmrun.hide;

frmlesson.show.

end;

procedure Tfrmrun. FormClose (Sender: TObject; var Action: TCloseAction);

begin.

halt;

end;

procedure Tfrmrun. FormCreate (Sender: TObject);

var f: file of tconfig;

lesson:tconfig;

n:byte;

begin.

n:=0;

assignfile (f, «ld.cfg »);

reset (f);

while not eof (f) do begin.

inc (n);

read (f, lesson);

names[n]: =lesson.filename;

lblessons.Items.Add («Урок «+inttostr (n)+ «» +lesson.name);

end;

closefile (f);

end;

procedure Tfrmrun. lblessonsDblClick (Sender: TObject);

begin.

loadlesson;

end;

procedure Tfrmrun. lblessonsKeyPress (Sender: TObject; var Key: Char);

begin.

if key=#13 then loadlesson.

end;

procedure Tfrmrun. Button2Click (Sender: TObject);

begin.

close.

end;

procedure Tfrmrun. Button1Click (Sender: TObject);

begin.

loadlesson;

end;

end.

unit lessonfrm;

interface.

uses.

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,.

ExtCtrls, Buttons, StdCtrls;

type.

TfrmLesson = class (TForm).

pic1:t8518_;

pic2:t8518_;

pic3:t8518_;

SpeedButton1: TSpeedButton;

SpeedButton2: TSpeedButton;

SpeedButton3: TSpeedButton;

cmdYes: TButton;

cmdNo: TButton;

procedure FormClose (Sender: TObject; var Action: TCloseAction);

procedure SpeedButton3Click (Sender: TObject);

procedure FormPaint (Sender: TObject);

procedure FormShow (Sender: TObject);

procedure FormDeactivate (Sender: TObject);

procedure Timer1Timer (Sender: TObject);

procedure FormCreate (Sender: TObject);

procedure cmdYesClick (Sender: TObject);

procedure cmdNoClick (Sender: TObject);

procedure SpeedButton2Click (Sender: TObject);

procedure SpeedButton1Click (Sender: TObject);

procedure FormActivate (Sender: TObject);

private.

{ Private declarations }.

public.

nq, npq: byte;

end;

var.

frmLesson: TfrmLesson;

implementation.

{$R *.DFM}.

uses runfrm, resfrm;

var f: textfile;

textY:integer;

first, nopaint: boolean;

strpage:array[1.80] of string[80];

numpage, ap, np, sp, pp: byte; {прав. відповідь; у питань; правильних ответов}.

pages:array[0.100] of byte;

fontemp:tfont;

pagefonts:array[1.100] of tfont;

procedure loadpage;

begin.

pagefonts[numpage]: =frmlesson.canvas.font;

sp:=1;

inc (pp);

pages[pp]: =pages[pp-1];

while not eof (f) do begin.

readln (f, strpage[sp]);

inc (sp);

inc (pages[pp]);

if strpage[sp-1]= «/:newpage «then exit.

end;

end;

procedure drawpage;

label 1;

var s: string;

x, y: integer;

npic:^t8518_;

q:tcolor;

i, n: byte;

w:tfontstyles;

r:trect;

temp:tfont;

begin.

{ frmlesson. pic1.left:=0;}.

frmlesson.Canvas.TextOut (3,3, «»);

np:=1;

r.Left:=0;

r.Top:=0;

r.Right:=frmlesson.Width;

r.Bottom:=frmlesson.Height-80;

frmlesson.Canvas.FillRect®;

if not nopaint then begin.

npic:[email protected];

frmlesson.pic1.hide;

frmlesson.pic2.hide;

frmlesson.pic3.hide.

end;

frmlesson.canvas.fillrect®;

i:=1;

while i.

s:=strpage[i];

inc (i);

if p. s= «/:question «then begin.

temp:=frmlesson.Canvas.Font;

frmlesson.Canvas.Font.Color:=clred;

frmlesson.Canvas.pen.Color:=clred;

r.Top:=texty;

r.Left:=3;

r.Right:=frmlesson.Width-10;

r.Bottom:=texty+38;

frmlesson.Canvas.Rectangle®;

frmlesson.cmdyes.top:=texty+6;

frmlesson.cmdYes.Left:=frmlesson.width-170;

frmlesson.cmdno.top:=texty+6;

frmlesson.cmdno.Left:=frmlesson.width-90;

frmlesson.cmdYes.Show;

frmlesson.cmdno.show;

frmlesson.Canvas.Font:=temp;

s:=strpage[i];

frmlesson.Canvas.TextOut (5,texty+3,s);

ap:=strtoint (strpage[i+1]);

inc (texty, 40);

inc (i, 2).

end else.

if p. s= «/:picture «then begin.

inc (i, 3);

if nopaint then goto 1;

x:=strtoint (strpage[i-3]);

y:=strtoint (strpage[i-2]);

s:=strpage[i-1];

npic^.Enabled:=true;

npic^.Picture.LoadFromFile (s);

npic^.left:=x;

npic^.top:=y;

npic^.visible:=true;

if np=1 then begin.

np:=2;

npic:[email protected];

end else npic:[email protected];

1:

end else.

if p. s= «/:size «then begin.

n:=strtoint (strpage[i]);

inc (i);

frmlesson.canvas.Font.Size:=n.

end else.

if p. s= «/:font «then begin.

s:=strpage[i];

inc (i);

frmlesson.canvas.Font.Name:=s.

end else.

if p. s= «/:style «then begin.

n:=strtoint (strpage[i]);

inc (i);

case n of.

1:w:=[];

2:w:=[fsbold];

4:w:=[fsitalic];

3:w:=[fsunderline];

5:w:=[fsstrikeout];

end;

frmlesson.canvas.Font.Style:=w.

end else.

if p. s= «/:color «then begin.

s:=strpage[i];

inc (i);

if p. s= «black «then q:=clblack;

if p. s= «red «then q:=clred;

if p. s= «blue «then q:=clblue;

if p. s= «green «then q:=clgreen;

if p. s= «gray «then q:=clgray;

if p. s= «yellow «then q:=clyellow;

frmlesson.canvas.font.Color:=q.

end else.

if p. s= «/:newpage «then exit else begin.

frmlesson.Canvas.TextOut (2,texty, s);

inc (texty, frmlesson.Canvas.Font.Size+10).

end;

end.

end;

procedure TfrmLesson. FormClose (Sender: TObject; var Action: TCloseAction);

begin.

closefile (f);

if nq>0 then frmresult. show else frmrun.Show.

end;

procedure TfrmLesson. SpeedButton3Click (Sender: TObject);

begin.

frmlesson.hide;

frmresult.show.

end;

procedure TfrmLesson. FormPaint (Sender: TObject);

begin.

texty:=2;

if first then begin.

first:=false;

fontemp:=frmlesson.canvas.font;

drawpage.

end else begin.

nopaint:=true;

drawpage;

nopaint:=false.

end.

end;

procedure TfrmLesson. FormShow (Sender: TObject);

var s, name: string;

begin.

nq:=0;

first:=true;

nopaint:=true;

assignfile (f, lessonname);

reset (f);

while not eof (f) do begin.

readln (f, s);

if p. s= «/:question «then inc (nq).

end;

closefile (f);

reset (f);

readln (f, name);

frmlesson.Caption:=name;

textY:=2;

loadpage;

frmlesson.Canvas.textout (20,20, «»);

end;

procedure TfrmLesson. FormDeactivate (Sender: TObject);

begin.

nopaint:=true.

end;

procedure TfrmLesson. Timer1Timer (Sender: TObject);

var q: tcolor;

x, y: integer;

begin.

{ if not frmlesson. Visible then exit;

x:=random (frmlesson.Width);

y:=random (frmlesson.Height);

if (x in [pic1.Left.pic1.Left+pic1.Width]) or (y in.

[pic1.Top.pic1.Top+pic1.Height]) then exit;

q:=frmlesson.canvas.pixels[x, y];

if qclwhite then begin.

nopaint:=true;

texty:=1;

drawpage.

end;

frmlesson.canvas.pixels[x, y]: =clred;}.

end;

procedure TfrmLesson. FormCreate (Sender: TObject);

begin.

npq:=0;

ap:=1;

pp:=0;

numpage:=1;

end;

procedure TfrmLesson. cmdYesClick (Sender: TObject);

begin.

if ap=1 then inc (npq);

frmlesson.cmdYes.enabled:=false;

frmlesson.cmdno.enabled:=false;

end;

procedure TfrmLesson. cmdNoClick (Sender: TObject);

begin.

if ap=2 then inc (npq);

frmlesson.cmdYes.enabled:=false;

frmlesson.cmdno.enabled:=false;

end;

procedure TfrmLesson. SpeedButton2Click (Sender: TObject);

begin.

canvas.Rectangle (0,0,width, height);

pic1.Hide;

pic2.Hide;

pic3.Hide;

frmlesson.Repaint;

{ pic1. show;

pic1.hide; }.

inc (numpage);

if not speedbutton1. enabled then speedbutton1. Enabled:=true;

frmlesson.cmdYes.hide;

frmlesson.cmdno.hide;

{ frmlesson. pic1.hide;}.

frmlesson.pic2.hide;

frmlesson.pic3.hide;

texty:=1;

sp:=0;

loadpage;

drawpage;

if eof (f) then speedbutton2. Enabled:=false.

end;

procedure TfrmLesson. SpeedButton1Click (Sender: TObject);

var i: byte;

q:integer;

s:string[100];

begin.

pic1.Hide;

pic2.Hide;

pic3.Hide;

frmlesson.Repaint;

dec (numpage);

if not speedbutton2. enabled then speedbutton2. Enabled:=true;

closefile (f);

reset (f);

canvas.Font:=pagefonts[numpage];

if numpage=1 then begin.

readln (f);

speedbutton1.Enabled:=false.

end else begin.

i:=0;

while i.

readln (f, s);

if p. s= «/:color «then begin.

readln (f, s);

if p. s= «black «then q:=clblack;

if p. s= «red «then q:=clred;

if p. s= «blue «then q:=clblue;

if p. s= «green «then q:=clgreen;

if p. s= «gray «then q:=clgray;

if p. s= «yellow «then q:=clyellow;

frmlesson.canvas.font.Color:=q.

end;

if p. s= «/:name «then begin.

readln (f, s);

canvas.Font.Name:=s.

end;

if p. s= «/:size «then begin.

readln (f, q);

canvas.Font.Size:=q.

end;

if p. s= «/:newpage «then inc (i).

end.

end;

{ for i:=1 to pages[pp-2] do readln (f);

for i:=1 to pp do pages[pp]: =0;

dec (pp, 2);

if pp=0 then begin.

readln (f);

frmlesson.canvas.Font:=fontemp;

end;}.

frmlesson.cmdYes.hide;

frmlesson.cmdno.hide;

frmlesson.pic1.hide;

frmlesson.pic2.hide;

frmlesson.pic3.hide;

texty:=1;

sp:=0;

loadpage;

if pp=1 then speedbutton1. enabled:=false;

drawpage;

end;

procedure TfrmLesson. FormActivate (Sender: TObject);

begin.

formcreate (sender);

end;

end.

unit resfrm;

interface.

uses.

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,.

StdCtrls, Grids;

type.

TfrmResult = class (TForm).

StringGrid1: TStringGrid;

Button1: TButton;

procedure FormActivate (Sender: TObject);

procedure Button1Click (Sender: TObject);

procedure FormClose (Sender: TObject; var Action: TCloseAction);

private.

{ Private declarations }.

public.

{ Public declarations }.

end;

var.

frmResult: TfrmResult;

implementation.

uses runfrm, lessonfrm;

{$R *.DFM}.

procedure TfrmResult. FormActivate (Sender: TObject);

begin.

with stringgrid1 do begin.

colwidths[0]: =150;

cells[1,0]: = «Кількість » ;

cells[0,1]: = «Запитань » ;

cells[0,2]: = «Правильних відповідей » ;

cells[1,1]: =inttostr (frmlesson.nq);

cells[1,2]: =inttostr (frmlesson.npq);

end.

end;

procedure TfrmResult. Button1Click (Sender: TObject);

begin.

frmresult.Hide;

frmrun.Show.

end;

procedure TfrmResult. FormClose (Sender: TObject; var Action: TCloseAction);

begin.

action:=cahide;

frmrun.Show.

end;

end.

Показати весь текст
Заповнити форму поточною роботою