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

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

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

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

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

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

Міністерство освіти та науки України Національний університет “Львівська політехніка” інститут комп’ютерних наук та інформаційних технологій Кафедра “Системи автоматизованого проектування”  Звіт до лабораторної роботи № 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.
Антиботан аватар за замовчуванням

01.01.1970 03:01-

Коментарі

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

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

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

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

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

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

Admin

26.02.2023 12:38

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