47809 (597360), страница 4
Текст из файла (страница 4)
Властивості компонента String Grid:
-
Name – ім'я, що використовується в програмі для звернення до об'єкта;
-
ColCount – кількість стовпчиків (стовпців);
-
RowCount – кількість рядків;
-
Cells – ім'я масиву ,відповідного таблиці.
-
FixedCols – кількість фіксованих зліва стовпчиків;
-
FixedRows – кількість фіксованих зверху рядків;
-
Options.goEditing – можливість редагування вмісту клітинок таблиці;
-
Options.goTab – можливість переходу до наступного елементу клавішею “Tab”;
-
DefaultColWidth – визначає ширину стовпчиків таблиці;
-
DefaultRowWidth – висота рядків таблиці.
-
OptionsGoAlwaysShowEditor – при значенні False, після набору тексту необхідно натиснути F2, чи клацнути миша при значенні True – редагування виконується автоматично.
ІІІ. Використання компонента Мемо дозволяє вводити в масив елементи символьного типу у вигляді рядків тексту.
Властивості Memo:
Name -- ім'я компонента, що використовується в тексті програми;
Lines – номер рядка, номерація починається з нуля (номер задається в «[ ]»);
Text – символьна інформація, що визначає значення елементів масиву.
IV. Введення даних у масив з використанням списку List Box (Standard).
Властивості ListBox :
Items – елементи списку;
ItemIndex – номер обраного елемента списку ( на початку роботи «0»).
Список може бути сформований під час створення форми додатка, чи динамічно під час роботи програми.
У вікні Object Inspector вибрати властивості Items і клацнути на кнопці....., відкривається діалогове вікно редактора списку рядків ( StringList Editor). Кожен елемент набирати з нового рядка і завершувати «Enter». Після введення всіх елементів списку натиснути «ОК».
Процедура обробки події OnKeyPress
( перевірка коректності введення цілих чисел)
Procedure Tform1.StringGridKeyPress (Sender:Tobject; Var Key : char );
Begin
Case Key of
#8,’0’..’9’ : ; // Цифри і клавіша
#13; // Клавіша
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’ : ; // Цифри і клавіша
#13; // Клавіша
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.
Тема: Обробка двовимірного масиву.
Мета: Освоїти методи обробки масиву.
Постановка задачі: Підрахувати середній бал студентів за підсумками сесії. За запитом виводити середній бал по всій групі.
Хід роботи:
-
Відкрити новий додаток. Дати заголовок Form1.Caption ― 'Підсумки сесії':
Розмістити на формі:
-
Зі сторінки Standard мітку Label1; властивість Caption ― 'Підсумки сесії по групі 37_';
-
Зі сторінки Additional таблицю рядків StringGrid1; встановити властивості:
ColCount ― 5 {Кількість стовпців};
RowCount ― 5 {Кількість рядків};
FixedCols ― 0 {Кількість фіксованих стовпців};
FixedRows ― 1 {Кількість фіксованих рядків};
Name ― StringGrid1 ( або SG1 );
Options.goEditing ― True {Редагування клітинок таблиці};
Options.goTab ― True;
-
Зі сторінки Standard прапорець CheckBox; встановити його властивість Caption ― 'Середній бал по групі';
-
Зі сторінки Standard кнопку Button1; встановити властивість Caption ― 'Пуск';
-
Зі сторінки Standard для виведення середнього бала по групі Label2 (чи Panel1); Caption ― ' ' (очистити).
-
Для початкового програмного заповнення заголовка таблиці обробити подію активації форми:
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;
-
Основну обробку і введення елементів масиву (при заповненні таблиці) оформити як процедуру обробки події натискання клавіші "Пуск":
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}
-
Виконати перевірку коректності введення даних процедурою OnKeyPressed. У випадку помилки вивести повідомлення
"Дані не входять у діапазон [1..5]" і повторити введення.
-
Перевірити, чи введені дані в клітинку, якщо ні ― повідомлення на екран і корегування таблиці.
Заповнити початковий масив випадковими числами ( RANDOM ).
Контрольні питання:
-
Компонент StringGrid, його властивості і події.
-
Компонент CheckBox, його властивості і події.
-
Методи введення й обробки елементів масиву.
-
Перевірка коректності введення даних.
Лабораторна робота №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. Створити ехе-файл проекту:
-
{гол.меню Project Build all (сконструювати все)}
-
Закрити Delphi:
Запустити задачу як ехе-файл через піктограму
КОНТРОЛЬНІ ПИТАННЯ :
-
Властивості компонента Image.
-
Властивості і події компонента BitBtn.
-
Створення ехе-файла.
-
Вибір піктограми задачі
-
Спливаюча підказка.
Лабораторна робота № 14
Тема : Створення довідкової системи додатка
Мета : Навчитися створювати довідкову систему проекту
Складається з двох етапів:
Створення файлу документа
Компіляції файлу довідки.
I Етап
Файл документа створюється будь-яким текстовим процесором (напр. Microsoft Word) і зберігається як rtf файл.
1. Набираємо текст розділів довідки.
2. Заголовки розділів оформляємо одним зі стилів «Заголовок ».
3. Текст кожного розділу довідки повинен бути на окремій сторінці документа, тобто закінчуватися «розривом сторінки ».
4. Позначаємо заголовки розділів виносками. Універсальна виноска для ідентифікатора теми, по якому на цю виноску можуть посилатися інші теми - #. Її потрібно ставити перед кожним розділом довідки; {Вставка → посилання → виноска → інша → # у поле введення → Ok}. У нижній частині вікна редагування розкривається вікно введення тексту виноски, де вводимо ідентифікатор уставленої виноски; {# розділ1 # razd 2}.
5. Перехід до інших розділів довідки по виділеному слову (ключу): ключове слово в загальному тексті rtf файлу підкреслюємо подвійною лінією {Формат → Шрифт → Підкреслення → Подвійне → Ок застосовуємо до виділеного ключового слова}. За ключовим словом у тексті rtf файлу набираємо ідентифікатор посилання, куди необхідний перехід у довідці і «ховаємо» цей набраний ідентифікатор {Формат → Шрифт → Схований → Ок}. При цьому опція «подвійне підкреслення» повинна бити відключена.
6. Зразок фрагменту rtf – файлу: