Главная страница

курсовая. курсовая_лазарус. Разработка справочной системы по визуальным компонентам интегрированной среды разработки lazarus


Скачать 377.63 Kb.
НазваниеРазработка справочной системы по визуальным компонентам интегрированной среды разработки lazarus
Анкоркурсовая
Дата08.01.2023
Размер377.63 Kb.
Формат файлаdocx
Имя файлакурсовая_лазарус.docx
ТипКурсовая
#877051
страница3 из 3
1   2   3

Заключение


В процессе выполнения настоящей курсовой работы мы познакомились с интегрированной средой разработки Lazarus, изучили различные ресурсы по компонентам библиотеки LCL.

В результате изучения информации были выделены общие свойства визуальных компонентов и их общие события, выделена основная информация по компонентам, а затем скомпонована в файлы html, чтобы быть включенной в справочную систему.

Также в результате выполнения настоящей курсовой работы было разработано приложение, которое реализует справочную систему по визуальным компонентам Lazarus на основе набора из html файлов, подключаемых к приложению по мере выбора соответствующей строки из списка компонентов.

Также к приложению был добавлен простой пример применения визуальных компонентов и изменения их свойств, чтобы начинающему программисту можно было не только изучить справку, но и увидеть некоторые компоненты в действии.

Поставленные в начале работы задачи были выполнены, цель курсовой работы достигнута.

Список использованной литературы


1. Алексеев Е. Р., Чеснокова О. В., Кучер Т. В. Free Pascal и Lazarus: Учебник по программированию / Е. Р. Алексеев, О. В. Чеснокова, Т. В. Кучер – М. : ALT Linux ; Издательский дом ДМК-пресс, 2010. – 440 с.

2. Ачкасов В.Ю. Программирование на Lazarus/ В.Ю. Ачкасов – М.: Национальный Открытый Университет «ИНТУИТ», 2016. – 521 с.

3. Гуриков С.Р. Программирование в среде Lazarus. Учебное пособие. – М.: Издательство «Форум», 2019. – 336 с.

4. Мансуров К.Т. Основы программирования в среде Lazarus, 2010. – 772 с.

5. Одинцов И.О. Профессиональное программирование. Системный подход. – СПб.: БВХ-Петербург, 2004. – 624 с.

6. LCL Components/ru – [Электронный ресурс] – Режим доступа: https://wiki.lazarus.freepascal.org/LCL_Components/ru (дата обращения: 10.05.2022)

7. История версий Delphi. – URL: http://bourabai.ru/einf/Delphi/history.htm (дата обращения: 21.10.2017)

8. Lazarus. – [Электронный ресурс] – Режим доступа: https://gospodaretsva.com/category/lazarus (дата обращения: 21.10.2017)

9. Клейменова Е.М. АНАЛИЗ СОВРЕМЕННЫХ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ // Материалы VIII Международной студенческой электронной научной конференции «Студенческий научный форум» – [Электронный ресурс] – Режим доступа: http://www.scienceforum.ru/2016/1508/20094 (дата обращения: 10.05.2022).

10. Семухин С. О. Сравнительный анализ языков программирования // Научно-методический электронный журнал «Концепт». – 2015. – Т. 35. – С. 166–170. – [Электронный ресурс] – Режим доступа: http://e-koncept.ru/2015/95588.htm (дата обращения: 10.05.2022)

ПРИЛОЖЕНИЕ A


Листинг приложения

unit fUnit;
{$mode objfpc}{$H+}
interface
uses

Classes, SysUtils, Forms, Controls, Graphics, Dialogs, LazHelpHTML, ComCtrls,

StdCtrls, Ipfilebroker, IpHtml;
type
{ TForm1 }
TForm1 = class(TForm)

BtnOk: TButton;

BtnExit: TButton;

Button1: TButton;

Label1: TLabel;

procedure BtnExitClick(Sender: TObject);

procedure BtnOkClick(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

private
public
end;
var

Form1: TForm1;

ProgramPath:string;
implementation
uses hlpUnit,ExampleUnit;

{$R *.lfm}
{ TForm1 }
procedure TForm1.BtnExitClick(Sender: TObject);

begin

Form1.Close;

end;
procedure TForm1.BtnOkClick(Sender: TObject);

begin

Form1.Hide;

Form2.Show;

end;
procedure TForm1.Button1Click(Sender: TObject);

begin

Form1.Hide;

Form3.ShowModal;

Form1.Show;

end;
procedure TForm1.FormCreate(Sender: TObject);

begin

ProgramPath:=ExtractFileDir(ParamStr(0));

end;

end.

unit hlpUnit;
{$mode ObjFPC}{$H+}
interface
uses

Classes, SysUtils, Forms, Controls, Graphics, Dialogs, ComCtrls, ExtCtrls,

StdCtrls, IpHtml, Ipfilebroker, StrUtils;
type

{ TForm2 }

TForm2 = class(TForm)

Bevel1: TBevel;

Bevel2: TBevel;

Bevel3: TBevel;

Bevel4: TBevel;

btnExit: TButton;

btnBack: TButton;

btnNext: TButton;

btnSort: TButton;

btnCancelSort: TButton;

IpFileDataProvider1: TIpFileDataProvider;

IpHtmlPanel1: TIpHtmlPanel;

TreeView1: TTreeView;

procedure btnBackClick(Sender: TObject);

procedure btnCancelSortClick(Sender: TObject);

procedure btnExitClick(Sender: TObject);

procedure btnNextClick(Sender: TObject);

procedure btnSortClick(Sender: TObject);

procedure FormActivate(Sender: TObject);

procedure FormCreate(Sender: TObject);

procedure FormResize(Sender: TObject);

procedure TreeView1Click(Sender: TObject);

private

public

end;

mList=array[0..2,1..100] of string;

var

Form2: TForm2;

IdI, IdP: integer;

Stek: string;

FList:TextFile;
implementation

uses fUnit;

{$R *.lfm}
function StekPrev(var s:string):integer;

var i, k:integer;

begin

i:=Length(s);

if i=3 then

k:=-1

else

begin

while s[i]<>'/' do

i:=i-1;

k:=StrToInt(AnsiRightStr(s,Length(s)-i));

s:=AnsiLeftStr(s,i-1);

result:=k;

end;

end;

{ TForm2 }

procedure TForm2.FormActivate(Sender: TObject);

begin

TreeView1.Height:=Form2.ClientHeight-2;

Bevel1.Height:=Form2.ClientHeight-2;

Bevel1.Left:=Form2.ClientWidth div 4;

Bevel2.Top:=Form2.ClientHeight-40;

Bevel2.Width:=Form2.ClientWidth-Bevel1.Left-5;
Bevel3.Top:=Form2.ClientHeight-35;

Bevel3.Left:=Bevel1.Left+3+(Form2.ClientWidth-Bevel1.Left) div 3;
Bevel4.Top:=Form2.ClientHeight-35;

Bevel4.Left:=Bevel1.Left+3+2*((Form2.ClientWidth-Bevel1.Left) div 3);

btnExit.Top:=Form2.ClientHeight-35;

btnExit.Left:=Bevel1.Left+3+2*((Form2.ClientWidth-Bevel1.Left) div 3);

btnExit.Height:=33;

btnBack.Top:=Form2.ClientHeight-35;

btnBack.Left:=Bevel1.Left+3+2*((Form2.ClientWidth-Bevel1.Left) div 3);

btnBack.Height:=33;

btnNext.Top:=Form2.ClientHeight-35;

btnNext.Left:=Bevel1.Left+3+2*((Form2.ClientWidth-Bevel1.Left) div 3);

btnNext.Height:=33;

btnSort.Width:= Bevel1.Left div 2 - 2;

IpHtmlPanel1.Width:=Form2.ClientWidth-Bevel1.Left-10;

IpHtmlPanel1.Height:=Bevel2.Top-3;

IpHtmlPanel1.Left:=Bevel1.Left+3;

IpHtmlPanel1.OpenURL(fUnit.ProgramPath+'\Help\Index.html');

IdI:=-1;

stek:=IntToStr(IdI);

end;
procedure TForm2.btnExitClick(Sender: TObject);

begin

IpHtmlPanel1.SetHtmlFromStr('');

Close;

Form1.Show;

end;
procedure TForm2.btnNextClick(Sender: TObject);

var Node:TTreeNode;

begin

if IdIthen

begin

IdI:=IdI+1;

IdP:=Idp+1;

stek:=stek+'/'+IntToStr(IdI);

TreeView1.Selected:=treeview1.Items[IdI];

Form2.Caption:=treeview1.Selected.text;

IpHtmlPanel1.SetHtmlFromStr('');

IpHtmlPanel1.OpenURL(fUnit.ProgramPath+'\Help\Index'+inttostr(IdI)+'.html');

IpHtmlPanel1.Refresh;

IpHtmlPanel1.SetFocus;

end

else

begin

IdI:=0;

IdP:=Idp+1;

stek:=stek+'/'+IntToStr(IdI);

TreeView1.Selected:=treeview1.Items[IdI];

Form2.Caption:=treeview1.Selected.text;

IpHtmlPanel1.SetHtmlFromStr('');

IpHtmlPanel1.OpenURL(fUnit.ProgramPath+'\Help\Index'+inttostr(IdI)+'.html');

IpHtmlPanel1.Refresh;

IpHtmlPanel1.SetFocus;

end;

end;
procedure TForm2.btnSortClick(Sender: TObject);

begin

TreeView1.AlphaSort;

end;
procedure TForm2.btnBackClick(Sender: TObject);

var k: integer;

begin

if IdI=-1 then IdI:=0; //если дошли до начала, то встаем на первый

k:=StekPrev(stek); //идем назад по стеку

if k=IdI then k:=StekPrev(stek); //повторяем, чтобы не загружать повторно текущий файл

if IdP>1 then

begin

IdI:=k; //запоминаем предыдущий

IdP:=IdP-1;//уменьшаем счетчик пройденных страниц

TreeView1.Selected:=treeview1.Items[IdI]; //переход на предыдущий

Form2.Caption:=treeview1.Selected.text; //прописываем в заголовке формы

IpHtmlPanel1.SetHtmlFromStr(''); //загружаем страничку

IpHtmlPanel1.OpenURL(fUnit.ProgramPath+'\Help\Index'+inttostr(IdI)+'.html');

IpHtmlPanel1.Refresh;

IpHtmlPanel1.SetFocus;

end

else

begin

IdI:=-1; //если ещё не было переходов по страницам

IdP:=0; //счетчик нулевой

stek:='-1/';//стек нулевой

TreeView1.Selected:=treeview1.Items[IdI+1]; //в дереве встаем на первый пункт

Form2.Caption:=treeview1.Selected.text;

IpHtmlPanel1.SetHtmlFromStr(''); //загружаем стартовую страницу

IpHtmlPanel1.OpenURL(fUnit.ProgramPath+'\Help\Index.html');

IpHtmlPanel1.Refresh;

IpHtmlPanel1.SetFocus;

end;

end;
procedure TForm2.btnCancelSortClick(Sender: TObject);

var dirpath:string;

begin//заполнение TreeView из файла

dirpath:=fUnit.ProgramPath+'\Help\List.dat';

if FileExists(dirpath) then

begin

TreeView1.LoadFromFile(Dirpath);

end;

IpHtmlPanel1.SetHtmlFromStr('');

if IdI<>-1 then IpHtmlPanel1.OpenURL(fUnit.ProgramPath+'\Help\Index'+inttostr(IdI)+'.html')

else IpHtmlPanel1.OpenURL(fUnit.ProgramPath+'\Help\Index.html');

IpHtmlPanel1.Refresh;

IpHtmlPanel1.SetFocus;

end;
procedure TForm2.FormCreate(Sender: TObject);

var dirpath:string;

begin

TreeView1.Color:=Form2.Color;

//заполнение TreeView из файла

dirpath:=fUnit.ProgramPath+'\Help\List.dat';

if FileExists(dirpath) then

begin

TreeView1.LoadFromFile(Dirpath);

end;

IdI:=-1;

IdP:=0;

stek:='-1/';

end;
procedure TForm2.FormResize(Sender: TObject);

begin

TreeView1.Height:=Form2.ClientHeight-2;

Bevel1.Height:=Form2.ClientHeight-2;

Bevel1.Left:=Form2.ClientWidth div 4;

Bevel2.Top:=Form2.ClientHeight-40;

Bevel2.Width:=Form2.ClientWidth-Bevel1.Left-5;

Bevel3.Top:=Form2.ClientHeight-35;

Bevel3.Left:=Bevel1.Left+3+(Form2.ClientWidth-Bevel1.Left) div 3;

Bevel3.Height:=33; Bevel4.Height:=33;

Bevel4.Top:=Form2.ClientHeight-35;

Bevel4.Left:=Bevel1.Left+3+2*((Form2.ClientWidth-Bevel1.Left) div 3);

btnExit.Top:=Form2.ClientHeight-35;

btnExit.Left:=Bevel1.Left+3+2*((Form2.ClientWidth-Bevel1.Left) div 3);

btnExit.Height:=33; btnBack.Height:=33; btnNext.Height:=33;

btnBack.Top:=Form2.ClientHeight-35;

btnBack.Left:=Bevel1.Left+3+2*((Form2.ClientWidth-Bevel1.Left) div 3);

btnNext.Top:=Form2.ClientHeight-35;

btnSort.Width:= Bevel1.Left div 2 - 2;

btnNext.Left:=Bevel1.Left+3+2*((Form2.ClientWidth-Bevel1.Left) div 3);

IpHtmlPanel1.Width:=Form2.ClientWidth-Bevel1.Left-10;

IpHtmlPanel1.Height:=Bevel2.Top-3;

IpHtmlPanel1.Left:=Bevel1.Left+3;

end;
procedure TForm2.TreeView1Click(Sender: TObject);

begin

IdI:=TreeView1.Selected.AbsoluteIndex;

IdP:=Idp+1;

stek:=stek+'/'+IntToStr(IdI);

Form2.Caption:=treeview1.Selected.text;

//По умолчанию в WebBrowser1 ничего не показывается

IpHtmlPanel1.SetHtmlFromStr('');

IpHtmlPanel1.OpenURL(fUnit.ProgramPath+'\Help\Index'+inttostr(IdI)+'.html');

IpHtmlPanel1.Refresh;

IpHtmlPanel1.SetFocus;

end;

end.
unit ExampleUnit;
{$mode ObjFPC}{$H+}
interface
uses

Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls, Buttons,

ExtCtrls, ComCtrls;
type

{ TForm3 }

TForm3 = class(TForm)

BitBtn1: TBitBtn;

CheckGroup1: TCheckGroup;

ComboBox1: TComboBox;

Edit1: TEdit;

Edit2: TEdit;

Edit3: TEdit;

GroupBox1: TGroupBox;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Memo1: TMemo;

Panel1: TPanel;

RadioButton1: TRadioButton;

RadioButton2: TRadioButton;

ScrollBar1: TScrollBar;

ScrollBar2: TScrollBar;

ScrollBar3: TScrollBar;

Shape1: TShape;

UpDown1: TUpDown;

UpDown2: TUpDown;

procedure ComboBox1Change(Sender: TObject);

procedure ComboBox1Click(Sender: TObject);

procedure RadioButton1Click(Sender: TObject);

procedure RadioButton2Click(Sender: TObject);

procedure ScrollBar1Change(Sender: TObject);

procedure UpDown1Changing(Sender: TObject; var AllowChange: Boolean);

procedure UpDown2Changing(Sender: TObject; var AllowChange: Boolean);

private

public

end;
var

Form3: TForm3;
implementation

uses fUnit;

{$R *.lfm}

{ TForm3 }

procedure TForm3.ScrollBar1Change(Sender: TObject);

begin

Shape1.Brush.color:=RGBToColor(ScrollBar1.Position,ScrollBar2.Position,ScrollBar3.Position);

edit1.text:=ScrollBar1.Position.ToString;

edit2.text:=ScrollBar2.Position.ToString;

edit3.text:=ScrollBar3.Position.ToString;

Shape1.Pen.Color:= RGBToColor(255-ScrollBar1.Position,255-ScrollBar2.Position,255-ScrollBar3.Position);

Memo1.Clear;

Memo1.Lines.Add('Изменение цвета фигуры');

end;
procedure TForm3.UpDown1Changing(Sender: TObject; var AllowChange: Boolean);

begin

Shape1.Top:=UpDown1.Position;

Memo1.Clear;

Memo1.Lines.Add('Перемещение фигуры по вертикали');

end;
procedure TForm3.UpDown2Changing(Sender: TObject; var AllowChange: Boolean);

begin

Shape1.Left:=UpDown2.Position;

Memo1.Clear;

Memo1.Lines.Add('Перемещение фигуры по горизонтали');

end;
procedure TForm3.ComboBox1Change(Sender: TObject);

begin

case ComboBox1.ItemIndex of

0: Shape1.Shape:=stCircle;

1: Shape1.Shape:=stEllipse;

2: Shape1.Shape:=stRectangle;

3: Shape1.Shape:=stSquare;

4: Shape1.Shape:=stTriangle;

end;

end;
procedure TForm3.ComboBox1Click(Sender: TObject);

begin

Memo1.Clear;

Memo1.Lines.Add('Выбор формы фигуры');

end;
procedure TForm3.RadioButton1Click(Sender: TObject);

begin

if RadioButton1.Checked then Shape1.visible:=true else Shape1.visible:=false;

Memo1.Clear;

Memo1.Lines.Add('Отображение фигуры включено');

end;
procedure TForm3.RadioButton2Click(Sender: TObject);

begin

if RadioButton2.Checked then Shape1.visible:=false else Shape1.visible:=true;

Memo1.Clear;

Memo1.Lines.Add('Отображение фигуры выключено');

end;

end.
1   2   3


написать администратору сайта