DevioLab CRYPTO TRADING AUTOMATION
LIVE
AUTOMATED CRYPTO TRADING • BINANCE
Автоматизуйте свій криптопортфель
Торгові боти DevioLab аналізують крипторинок, автоматично відкривають і закривають позиції та керують вашим портфелем на Binance 24/7.
CRYPTO 80 Bots
BINANCE Spot Trading
TRADING 24 / 7
Спробувати DevioLab
deviolab.com

Створення компонентів-списків у середовищі візуального програмування Delphi.

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Кафедра САПР

Інформація про роботу

Рік:
2013
Тип роботи:
Звіт до лабораторної роботи
Предмет:
Об’єктно-орієнтоване програмування

Частина тексту файла (без зображень, графіків і формул):

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА” Кафедра САПР Звіт до лабораторної роботи №3 на тему: “Створення компонентів-списків у середовищі візуального програмування Delphi.” з курсу “Застосування засобів об’єктно-орієнтованого програмування в лінгвістичних задачах” Мета: Навчитися використовувати компоненти-списки TListBox і TcomboBox, GroupBox, RadioButton, StringGrid, CheckBox. Теоретичні відомості Компонент TListBox призначений для відображення списку рядків на екрані - список ListBox.Цей компонент має у своєму складі об'єкт-список, що є екземпляром класу TStrings і містить набір рядків з асоційованими з ними довільними об'єктами. Якщо говорити точніше, використовується не сам абстрактний клас TStrings, а його однойменні нащадки з перевизначеними методами.Таким чином, компонент ListBox, що є екземпляром класу TListBox, дозволяє відображати на екрані список рядків, кожен з яких може бути зв'язаний, наприклад, з деяким малюнком. Безпосереднім предком класу TListBox є клас TCustomListBox, що породжений від класу TWinControl. Отже, компонент ListBox є віконним керуючим елементом. Основні характеристики списку ListBox закладені в класі TCustomListBox. Головними з них є наявність списку рядків класу TStrings, засобів відображення списку і можливість маніпулювання його елементами. TcustomListBox визначає індекс виділеного елемента в списку. Нумерація елементів починається з нуля. Якщо виділеного елемента немає, ця властивість приймає значення, рівне -1. Якщо в списку може бути виділено кілька елементів, вказується індекс активного виділеного елемента. Властивість доступна тільки на етапі виконання програми. Комбінований рядок введення ComboBox є екземпляром класу TCustomBox і поєднує в собі можливості рядка введення Edit і списку ListBox. По зовнішньому вигляду компонентів Combo Box нагадує звичайний рядок уведення Edit, але додатково має в правій частині кнопку зі стрілкою, спрямованої вниз.Якщо клацнути мишею по цій кнопці, з'явиться список, що випадає, подібний до списку компонента List Box. Наявність рядка введення в компонент Combo Box розширює його можливості в порівнянні зі звичайним списком List Box. Наприклад, використовуючи рядок уведення, можна вводити в список нові елементи, здійснювати пошук потрібного елемента в списку, відображати активний елемент списку. Основні характеристики комбінованого рядка введення закладені в класі TCustomComboBox, що є безпосереднім предком класу TCustomBox. Предком класу TCustomComboBox є безпосередньо базовий клас усіх віконних елементів керування TWinControl. Основні операції для обробки списку в компоненті ComboBox - додавання, видалення, пошук, сортування елементів - здійснюється так само, як і в списку ListBox. Порядок виконання роботи Частина 1. Використання компонента TListBox unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; var a:array[1..10] of integer; i,min,max,imin,imax:integer; type TForm1 = class(TForm) Edit1: TEdit; Button1: TButton; Button2: TButton; ListBox1: TListBox; ListBox2: TListBox; procedure FormCreate(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Edit1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); begin i:=0; ListBox1.Clear; ListBox2.Clear; end; procedure TForm1.Button1Click(Sender: TObject); begin ListBox1.Items.Add(Edit1.Text); i:=i+1; a[i]:=StrToInt(Edit1.Text); Edit1.SetFocus; end; procedure TForm1.Button2Click(Sender: TObject); begin max:=a[1]; imax:=1; min:=a[1]; imin:=1; for i:=2 to 10 do begin if max<a[i] then begin max:=a[i]; imax:=i end; if min>a[i] then begin min:=a[i]; imin:=i end; end; a[imax]:=min; a[imin]:=max; for i:=2 to 10 do ListBox2.Items.Add(IntToStr(a[i])); end; procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if key=13 then Button1.SetFocus; end; end. Частина 2. Використання компонента TComboBox unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; Button2: TButton; ComboBox1: TComboBox; ComboBox2: TComboBox; procedure FormCreate(Sender: TObject); procedure Button1Click(Sender: TObject); procedure ComboBox1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); procedure Button2Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; a:array[1..10] of integer; i,min,max,imin,imax:integer; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); begin i:=0; ComboBox1.Clear; ComboBox2.Clear; ComboBox1.TabOrder:=0; end; procedure TForm1.Button1Click(Sender: TObject); begin ComboBox1.Items.Add(ComboBox1.Text); i:=i+1; a[i]:=StrToInt(ComboBox1.Text); ComboBox1.SetFocus; end; procedure TForm1.ComboBox1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if key=13 then Button1.SetFocus; end; procedure TForm1.Button2Click(Sender: TObject); begin max:=a[1]; imax:=1; min:=a[1]; imin:=1; for i:=2 to 10 do begin if max<a[i] then begin max:=a[i]; imax:=i end; if min>a[i] then begin min:=a[i]; imin:=i end; end; a[imax]:=min; a[imin]:=max; for i:=2 to 10 do ComboBox2.Items.Add(IntToStr(a[i])); ComboBox2.DroppedDown:=true; end; end. Частина 3 Розробити програму яка дозволяє заповнювати 2-х вимірний масив випадковими цілими числами, знаходити максимальне та мінімальне значення елементів масиву та обраховує додаток головної діагоналі масиву. unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Grids; type TForm1 = class(TForm) StringGrid1: TStringGrid; GroupBox1: TGroupBox; CheckBox1: TCheckBox; CheckBox2: TCheckBox; CheckBox3: TCheckBox; Edit1: TEdit; Edit2: TEdit; Edit3: TEdit; Button1: TButton; Button2: TButton; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var i,j:integer; begin Randomize; with StringGrid1 do begin i:=0; for j:=1 to RowCount - 1 do Cells[i,j]:=IntToStr(j); j:=0; for i:=1 to ColCount - 1 do Cells[i,j]:=IntToStr(i); end; with StringGrid1 do for i:= 1 to ColCount - 1 do for j:= 1 to RowCount - 1 do begin Cells[i,j]:=IntToStr(Round(Sin(Random(100))*100)); end; end; procedure TForm1.Button2Click(Sender: TObject); var min,max,sum:integer; i,j:integer; begin If Checkbox1.Checked then with StringGrid1 do begin Min:=StrToInt(Cells[1,1]); for i:=1 to ColCount - 1 do for j:= 1 to RowCount -1 do if StrToInt(Cells[i,j])< min then min:=StrToInt(Cells[i,j]); Edit1.Text:=IntToStr(min); end else Edit1.Text:=''; if checkbox2.Checked then with StringGrid1 do begin Max:=StrToInt(Cells[1,1]); for i:=1 to ColCount - 1 do for j:=1 to RowCount - 1 do If StrToInt(Cells[i,j])>max then max:=StrToInt(Cells[i,j]); Edit2.Text:=IntToStr(max); end else Edit2.Text:=''; If Checkbox3.Checked then with StringGrid1 do begin sum:=0; for i:=1 to ColCount - 1 do sum:= Sum + StrToInt(Cells[i,i]); Edit3.Text:=IntToStr(sum); end else Edit3.Text:=''; end; end. Частина 4 Розробити програму, яка дозволяє виконувати основні арифметичні дії (Калькулятор) та перевіряє чи введені в поля операндів числові дані. unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TForm1 = class(TForm) Label1: TLabel; Edit1: TEdit; Label2: TLabel; Edit2: TEdit; Edit3: TEdit; Button1: TButton; RadioGroup1: TRadioGroup; Label3: TLabel; procedure Button1Click(Sender: TObject); procedure Edit1KeyPress(Sender: TObject; var Key: Char); procedure Edit2KeyPress(Sender: TObject; var Key: Char); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var a,b:integer; c:real; begin if (Edit1.Text<>'') and (Edit2.Text<>'') then begin a:=StrToInt(Edit1.Text); b:=StrToInt(Edit2.Text); Edit3.Text:=' '; case RadioGroup1.ItemIndex of 0: c:=a+b; 1: c:=a-b; 2: c:=a*b; 3: if b=0 then ShowMessage('На нуль ділити не можна') else c:=a/b; end; if RadioGroup1.ItemIndex<>3 then Edit3.Text:=FloatToStrF(c,ffGeneral,10,4) else if b<>0 then Edit3.Text:=FloatToStrF(c,ffGeneral,10,4) end else ShowMessage('Не задані значення'); end; procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); begin if not(Key in['0'..'9','+','-']) then Key:=#0; end; procedure TForm1.Edit2KeyPress(Sender: TObject; var Key: Char); begin if not(Key in['0'..'9','+','-']) then Key:=#0; end; end. Висновок: на цій лабораторній роботі я навчилася використовувати компоненти-списки TListBox і TcomboBox, GroupBox, RadioButton, StringGrid, CheckBox, дізналася про їх властивості, а також розробила програми, одна з яких виконує основні арифметичні функції, а інша - заповнює 2-х вимірний масив випадковими цілими числами, знаходить максимальне та мінімальне значення елементів масиву та обраховує додаток головної діагоналі масиву.
Антиботан аватар за замовчуванням

17.02.2013 19:14

Коментарі

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

Ділись своїми роботами та отримуй миттєві бонуси!

Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!