Разработка интерактивной среды обучения работеРефераты >> Программирование и компьютеры >> Разработка интерактивной среды обучения работе
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),(x:320;y:320),(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.
Во второй части работы рассмотрены типизированные константы в Паскале, их применение. Даны примеры программ.
Перечень ссылок
1. Культин Н. Delphi 4. Программирование на Object Pascal. BHV, Санкт-Петербург, 1999. – 480 с., ил.
2. Дэн Оузьер и др. Delphi 3. Освой самостоятельно. М.: “Издательство БИНОМ”, 1998 г. – 560 с.: ил.
3. Бондарев В. М., Рублинецкий В. И., Качко Е. Г. Основы программирования. Харьков: Фолио; Ростов н/Д: Феникс, 1998 – 368 с.
4. Справочная система Delphi
5. Фаронов В. В. Delphi 4. Учебный курс. М.: «Нолидж», 1999 – 464 с., ил.
Приложение А
Ниже дан исходный код всех модулей программы
unit Mainfrm;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ExtCtrls, StdCtrls;
type
TfrmMain = class(TForm)
Image1: TImage;
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(r);
frmmain.canvas.TextOut(x,151,'Добро пожаловать в программу "Learn Delphi" !!!');
dec(x,3);
if x<-720 then x:=frmmain.width
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:timage;
pic2:timage;
pic3:timage;
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:^timage;
q:tcolor;
i,n:byte;
w:tfontstyles;