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

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

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

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

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

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

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА” Кафедра САПР Звіт до лабораторної роботи №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:02-

Коментарі

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

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

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

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

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

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

Admin

26.02.2023 12:38

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