параметром - 1:
For |: = downto do // Ctrl+J - виклик знавця коду
{ Tools → Edition Option → Code Insight → Code Templates → натиснути Add у вікні для виводу нового шаблону shotcut + name в його короткий опис Description набираємо текст
шаблону, встановлюємо " │ " перед " : =" → зберігаємо та виходимо }.
12.Видалити шаблон із Знавця Коду { Tools → Editer Option → Code Insight → знайти шаблон і . Del } .
13. Змінити затримку автоматичного спрацьовування Code Insight на максимум (Delay) { Tools → Edition Option → Code Insight → Delay → повзунок на max = 1.5 sec → Ok } .
Контрольні питання:
1. Налагодження палітри компонентів.
2. Налагодження панелі інструментів.
3. Налагодження меню Tools.
4. Корегування знавця коду.
Тема: Введення й обробка елементів масиву
І Визначити конкретне значення елементів масиву ми можемо з використанням компонентів сторінки Standard Edit ( вікно редагування), при цьому на вихідній формі необхідно передбачити таку кількість віконець Edit, скільки елементів має масив.
Edit . Text - інформація символьного типу, для обробки числових значень необхідне перетворення типів:
· StrToFloat , StrToInt – перетворення символьного в числове;
· FloatToStr , IntToStr – зворотне перетворення для висновку результату.
При такому заданні масиву необхідно заздалегідь визначати і чітко фіксувати кількість елементів ( розмірність масиву).
ІІ При великій розмірності масиву незручно використовувати величезну кількість вікон редагування. Масив можна вводити по рядкам в таблицю елементів, де кожне число знаходитися в окремому клітинці. При цьому елементи розділяються пробілом. Компонент StringGrid знаходитися на сторінці Add i ti onal .
Властивості компонента String Grid :
1. Name – ім'я, що використовується в програмі для звернення до об'єкта;
2. ColCount – кількість стовпчиків (стовпців);
3. RowCount – кількість рядків;
4. Cells – ім'я масиву ,відповідного таблиці.
5. FixedCols – кількість фіксованих зліва стовпчиків;
6. FixedRows – кількість фіксованих зверху рядків;
7. Options . goEditing – можливість редагування вмісту клітинок таблиці;
8. Options . goTab – можливість переходу до наступного елементу клавішею “Tab”;
9. DefaultColWidth – визначає ширину стовпчиків таблиці;
10. DefaultRowWidth – висота рядків таблиці.
11. OptionsGoAlwaysShowEditor – при значенні False, після набору тексту необхідно натиснути F2, чи клацнути миша при значенні True – редагування виконується автоматично.
ІІІ . Використання компонента Мемо дозволяє вводити в масив елементи символьного типу у вигляді рядків тексту.
Властивості Memo:
Name - - ім'я компонента, що використовується в тексті програми;
Lines – номер рядка, номерація починається з нуля (номер задається в «[ ]»);
Text – символьна інформація, що визначає значення елементів масиву.
IV . Введення даних у масив з використанням списку List Box (Standard).
Властивості ListBox :
Items – елементи списку;
ItemIndex – номер обраного елемента списку ( на початку роботи «0»).
Список може бути сформований під час створення форми додатка, чи динамічно під час роботи програми.
У вікні Object Insp ector вибрати властивості Items і клацнути на кнопці....., відкривається діалогове вікно редактора списку рядків ( StringList Editor). Кожен елемент набирати з нового рядка і завершувати «Enter». Після введення всіх елементів списку натиснути «ОК».
Процедура обробки події OnKeyPress
( перевірка коректності введення цілих чисел)
Procedure Tform1.StringGridKeyPress (Sender:Tobject; Var Key : char );
Begin
Case Key of
#8,’0’..’9’ : ; // Цифри і клавіша <Back Space>
#13; // Клавіша <Enter>
If StringGrid1. Col < StringGrid1.ColCount – 1
Then StringGrid . co l : = StringGrid1.col + 1
Else key : = Chr(0); // i нші символи заборонені
End;
End;
Перевірка коректності введення дійсних чисел
Procedure Tform1.StringGridKeyPress (Sender:Tobject; Var Key : char );
Begin
Case Key of
#8,’0’..’9’ : ; // Цифри і клавіша <Back Space>
#13; // Клавіша <Enter>
If StringGrid1. Col < StringGrid1.ColCount – 1
Then StringGrid . co l : = StringGrid1.col + 1;
‘. ‘ , ’,’ : // Роздільник цілої і дробової частин числа
Begin
If Key <> DecimalSeparator then
Key : = DecimalSeparator ; // Замінимо роздільник на припустимий
If Pos ( StringGrid1. cells [ StringGrid . Col , 0] , DecemalSeparator ) <> 0
Then Key : = chr ( 0); // Заборона введення повторного роздільника
End;
‘ – ‘ : // мінус можна ввести тільки першим символом
// тобто коли комірка порожня
If Length ( StringGrid1.Cells [ StringGrid1 . Col , 0 ] ) <> 0
then Key : = Chr ( 0 )
else / / Інші символи заборонені
key : = Chr (0);
end; { end case}
end ; { end proc }
Лабораторна робота № 12.
Тема: Обробка двовимірного масиву.
Мета: Освоїти методи обробки масиву.
Постановка задачі: Підрахувати середній бал студентів за підсумками сесії. За запитом виводити середній бал по всій групі.
Хід роботи:
I. Відкрити новий додаток. Дати заголовок Form1.Caption ― 'Підсумки сесії':
Розмістити на формі:
1) Зі сторінки Standard à мітку Label1; властивість Caption ― 'Підсумки сесії по групі 37_';
2) Зі сторінки Additional à таблицю рядків StringGrid1; встановити властивості:
ColCount ― 5 {Кількість стовпців};
RowCount ― 5 {Кількість рядків};
FixedCols ― 0 {Кількість фіксованих стовпців};
FixedRows ― 1 {Кількість фіксованих рядків};
Name ― StringGrid1 ( або SG1 );
Options . goEditing ― True {Редагування клітинок таблиці};
Options.goTab ― True;
3) Зі сторінки Standard à прапорець CheckBox; встановити його властивість Caption ― 'Середній бал по групі';
4) Зі сторінки Standard à кнопку Button1; встановити властивість Caption ― 'Пуск';
5) Зі сторінки Standard для виведення середнього бала по групі à Label2 (чи Panel1); Caption ― ' ' (очистити).
II. Для початкового програмного заповнення заголовка таблиці обробити подію активації форми:
Procedure TForm1.FormActivate(Sender: TObject);
begin
StringGrid1.Cells[0,0]:=' Ф И О';
StringGrid1.Cells[1,0]:=' Програм.';
StringGrid1.Cells[2,0]:=' Мат.Ан.';
StringGrid1.Cells[3,0]:=' Диф.Ур.';
StringGrid1.Cells[4,0]:=' Ср.Бал';
end;
III. Основну обробку і введення елементів масиву (при заповненні таблиці) оформити як процедуру обробки події натискання клавіші "Пуск":
procedure TForm1.Button1Click(Sender: TObject);
var
a:array [1..5,1..10] of integer; {робочий масив}
S, {середній бал студента}
SR:real; {середній бал по групі}
i, {лічильник стовпців}
j:integer; {лічильник рядків}
begin
SR:=0;
For j:=1 to SG1.RowCount-1 do {цикл по рядках}
begin
S:=0;
For і:=1 to 3 do {цикл по стовпцях}
begin
a[i,j]:=StrToInt(SG1.Cells[i,j]);
S:=S+a[i,j];
end; {For і}
S:=S/3; {підрахунок середнього балу студента}
SG1.Cells[4,j] := FloatToStr(s);
SR:=SR+S;
end; {For j}
{аналіз значення прапорця - обчислення середнього бала по групі}
If CheckBox1.State=cbChecked then
begin
SR:=SR/(SG1.RowCount-1);
Label2.Caption:=FloatToStr(SR);
end; {Then}
end; {Proc}
IV. Виконати перевірку коректності введення даних процедурою OnKeyPressed. У випадку помилки вивести повідомлення
"Дані не входять у діапазон [1..5]" і повторити введення.
V. Перевірити, чи введені дані в клітинку, якщо ні ― повідомлення на екран і корегування таблиці.
Заповнити початковий масив випадковими числами ( RANDOM ).
Контрольні питання:
1. Компонент StringGrid, його властивості і події.
2. Компонент CheckBox, його властивості і події.
3. Методи введення й обробки елементів масиву.
4. Перевірка коректності введення даних.
Лабораторна робота №13
Тема: ”Анкета студента”
Мета: Використання зображення (фото, картинки), створення ехе-файла.
Постановка задачі:
Розробити додаток із зображеннями, що перекриваються.
Хід роботи:
I . Конструювання форми:
1. Відкрити новий додаток. Дати заголовок Form1.Caption – ‘Анкета студента’
2. Вибрати піктограму (іконку) для запуску задачі {Icon ®
® Load (завантажити)® вибираємо зі списку файлів *.ico ®
переглядаємо ® відкрити ® ОК ® іконка в системному рядку форми змінилася на обрану}
3. За бажанням змінити колір, фон, стиль, розмір форми.
4. Забрати кнопки системного меню форми ( ) {Borderconst ® biSystemMenu; biMinimize; biMaximize установити False }
На формі розмістити:
5. Зі сторінки Standard – мітку Label1; властивість Caption – 'Студент КТРЕ'
6. Зі сторінки Standard – поле Мемо (чи вікно Edit, чи Label) – для введення анкетних даних.
7. Розмістити 2 кнопки Button (з Standard)
Установити :
Caption.Button1 – ‘портретнe фото’
Caption.Button2 – ‘художнє фото’
8. Для коректного виходу з задачі (див.п.4) використовувати кнопку BitBtn зі сторінки палітри компонентів Additional. Установити властивість Kind(сорт) – вид кнопки на bkClose ® на кнопці з'явилася піктограма і напис Close.
9.На кнопці виведемо спливаючу підказку – “натяк”:
{властивість Hint – (це текст підказки, що з'являється при наведенні покажчика миші) – 'вихід із задачі’; властивість ShowHint – (показувати/непоказувати підказку) ® установити True}
10.Розмістити на формі об'єкт Image1 («картинка») зі сторінки Additional.
11.Уставити своє чи фото малюнок: {Image1 ® Picture ® вікно редактора Picture ® Load ® вибираємо файл із *.jpg; *.bmp; *.ico; *.wmf ® OK ® картинка у вікні}
12.Привести розмір зображення до заданих розмірів об'єкта Image: {властивість Stretch® TRUE }
13.Аналогічно п.п.10-13 вибрати 2-і фото (картинку), наклавши її цілком на першу картинку і сполучивши розміри.
II. Розробка кодів ( процедур ):
procedure TForm1.Button1Click(Sender: TObject);
begin
Image1.Visible:=true; { портретне фото візуальне }
Image2.Visible:=false; { художнє фото не візуальне }
button1.Visible:=false; {кнопка 1 не візуальна}
button2.Visible:=true; {кнопка 2 візуальна}
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Image2.Visible:=true; { портретне фото візуальне }
Image1.Visible:=false; { художнє фото не візуальне }
button2.Visible:=false; {кнопка 2 не візуальна}
button1.Visible:=true; {кнопка 1 візуальна}
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
close;
end;
III. Зберегти розроблений додаток :
{ гол . меню ® File ® Save all ( зберегти усі ) чи Shift+Ctrl+S}
чи для іншої папки:
{ гол . меню ® File ® Save as…(SaveUnitas…) ® шлях ®ім ' я Anketa.pas.
гол . меню ® Save Project as… ® шлях ® ім ' я Foto.dpr}
У в а г а!!!
Файли проекту і тексту програми повинні мати різні імена.
IV. Створити ехе-файл проекту:
1. {гол.меню ® Project ® Build all (сконструювати все)}
2. Закрити Delphi:
Запустити задачу як ехе-файл через піктограму
КОНТРОЛЬНІ ПИТАННЯ :
1. Властивості компонента Image.
2. Властивості і події компонента BitBtn.
3. Створення ехе-файла.
4. Вибір піктограми задачі
5. Спливаюча підказка.
Лабораторна робота № 14
Дата: 2019-05-29, просмотров: 195.