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.

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

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Інститут комп’ютерних наук та інформаційних технологій
Факультет:
Не вказано
Кафедра:
Системи автоматизованого проектуваня

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

Рік:
2015
Тип роботи:
Лабораторна робота
Предмет:
Застосування засобів об’єктно-орієнтованого програмування у лінгвістичних задачах
Група:
ПРЛм

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

Міністерство освіти та науки України Національний університет “Львівська політехніка” інститут комп’ютерних наук та інформаційних технологій Кафедра “Системи автоматизованого проектування”  Звіт до лабораторної роботи № 3 на тему: Створення компонентів-списків у середовищі візуального програмування Delphi з курсу: “Застосування засобів об’єктно-орієнтованого програмування у лінгвістичних задачах” Виконала: студентка групи ПРЛм-1 Львів - 2008 Мета роботи: навчитися використовувати компоненти-списки TListBox і TComboBox. Короткі теоретичні відомості Компонент TListBox призначений для відображення списку рядків на екрані - список ListBox. Цей компонент має у своєму складі об'єкт-список, що є екземпляром класу TStrings і містить набір рядків з асоційованими з ними довільними об'єктами. Якщо говорити точніше, використовується не сам абстрактний клас TStrings, а його однойменні нащадки з перевизначеними методами. Таким чином, компонент ListBox, що є екземпляром класу TListBox, дозволяє відображати на екрані список рядків, кожна з який може бути зв'язана, наприклад, з деяким малюнком. Безпосереднім предком класу TListBox є клас TCustomListBox, що породжений від класу TWinControl. Отже, компонент ListBox є віконним керуючим елементом. Основні характеристики списку ListBox закладені в класі TCustomListBox. Головними з них є наявність списку рядків класу TStrings, засобів відображення списку і можливість маніпулювання його елементами. Комбінований рядок введення ComboBox є екземпляром класу TCustomBox і поєднує в собі можливості рядка введення Edit і списку ListBox. По зовнішньому вигляду компонентів Combo Box нагадує звичайний рядок уведення Edit, але додатково має в правій частині кнопку зі стрілкою, спрямованої вниз. Якщо клацнути мишею по цій кнопці, з'явиться список, що випадає, подібний до списку компонента List Box. Наявність рядка введення в компонента Combo Box розширює його можливості в порівнянні зі звичайним списком List Box. Наприклад, використовуючи рядок уведення, можна вводити в список нові елементи, здійснювати пошук потрібного елемента в списку, відображати активний елемент списку. Основні характеристики комбінованого рядка введення закладені в класі TCustomComboBox, що є безпосереднім предком класу TCustomBox. Предком класу TCustomComboBox є безпосередньо базовий клас усіх віконних елементів керування TWinControl. Оскільки в класі TComboBox у порівнянні з класом TListBox відсутня властивість MultiSelect, те в компоненті Combo Box не допускається множинний вибір. Основні операції для обробки списку в компоненті ComboBox - додавання, видалення, пошук, сортування елементів - здійснюється так само, як і в списку List Box. Подією за замовчуванням для комбінованого рядка введення ComboBox є подія OnChange, що виникає при зміні тексту у вікні редагування в результаті прямого редагування чи тексту в результаті вибору зі списку. Частина 1  Текст програми unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; 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; a:array[1..10] of integer; i,min,max,imin,imax:integer; 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.  Текст програми unit Unit11; 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 Button2Click(Sender: TObject); procedure ComboBox1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); private { Private declarations } public { Public declarations } end; var Form1: TForm1; a:array[1..10] of integer; i,min,max,imin,imax,k: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.Button2Click(Sender: TObject); begin max:=a[1]; imax:=1; min:=a[1]; imin:=1; for k:=2 to 10 do begin if max<a[k] then begin max:=a[k]; imax:=k end; if min>a[k] then begin min:=a[k]; imin:=k end; end; a[imax]:=min; a[imin]:=max; for k:=1 to 10 do ComboBox2.Items.Add(IntToStr(a[k])); ComboBox2.DroppedDown:=true; end; procedure TForm1.ComboBox1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if key=13 then Button1.SetFocus; end; end. Частина2  Текст програми unit Unit12; 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 //вивід номера стрічок у 0- стовпці, та номера стовпців у // 0- стрічці 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 // Вивести в таблиці елементи 2-х вимірного масиву 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. Частина3  Текст програми unit Unit13; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TForm1 = class(TForm) Button1: TButton; Edit1: TEdit; Edit2: TEdit; RadioGroup1: TRadioGroup; Edit3: TEdit; Label1: TLabel; Label2: TLabel; Label3: TLabel; procedure Button1Click(Sender: TObject); procedure Edit1KeyPress(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 // Перевіряємо чи введені значення в компоненти Edit1, Edit2 if (Edit1.Text <> ' ') and (Edit2.Text <> ' ') then begin // Перетворюємо введені значення в ціли числа a:= StrToInt(Edit1.Text); b:= StrToInt(Edit2.Text); Edit3.Text:=' '; // За допомого оператору case вибираемо яку математичну дію ми // виконуємо 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; end. Висновок Отже, на даній лабораторній роботі я навчилася використовувати компоненти-списки TListBox і TComboBox.
Антиботан аватар за замовчуванням

2015

Коментарі

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

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

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

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

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

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

Admin

26.02.2023 12:38

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