Відображення даних у табличній формі
Урок 48
teach-inf.at.ua
9
Відображення даних�у табличній формі
Розділ 9 § 35
Ви вже ознайомилися з прийомами введення і виведення значень елементів одновимірного масиву з використанням компонента Memo.
Але, оскільки алгоритми опрацювання масивів призначені для роботи з таблицями даних, для більшої наочності роботи програми бажано відображати зміст масиву у вигляді таблиці.
9
© Вивчаємо інформатику teach-inf.at.ua
Властивості компонента StringGrid
Розділ 9 § 35
Компонент StringGrid (вкладка Additional на Палітрі компонентів) призначений для відображення різних даних у табличній формі. Як випливає з назви, комірки компонента StringGrid можуть містити дані типу String, а також відображати графічні об'єкти.
9
© Вивчаємо інформатику teach-inf.at.ua
Властивості компонента StringGrid
Розділ 9 § 35
Таблиця StringGrid складається із зафіксованих комірок-заголовків:
FixedCols
FixedRows
Виділених сірим кольором, і звичайних комірок білого кольору. Звернення до комірки таблиці, що знаходиться на перетині стовпця з номером col і рядка з номером row, має вигляд
StringGrid1.Cells[col, row]
9
© Вивчаємо інформатику teach-inf.at.ua
Властивості компонента StringGrid
Розділ 9 § 35
Нумерація стовпців (col) і рядків (row) починається з нуля.
Розглянемо основні компоненти StringGrid, за допомогою яких можна визначити структуру та зовнішній вигляд таблиці.
FixedRows
FixedCols
9
© Вивчаємо інформатику teach-inf.at.ua
Властивості компонента StringGrid
Розділ 9 § 35
Основні властивості компонента StringGrid
Призначення
Властивість
Визначає кількість рядків
RowCount
Визначає кількість стовпців
ColCount
Визначає кількість зафіксованих (сірих) рядків
FixedRows
Визначає кількість зафіксованих (сірих) стовпців
FixedCols
Містить таблицю значень
Cells
9
© Вивчаємо інформатику teach-inf.at.ua
Властивості компонента StringGrid
Розділ 9 § 35
Одновимірний масив — це таблиця, що складається з одного рядка, тому розглянемо приклад налаштування вигляду об'єкта StringGrid для відображення одновимірного масиву.
Властивість | Значення |
ColCount | 6 |
FixedCols | 0 |
FixedRows | 1 |
RowCount | 2 |
Defau itColWidth | 40 |
9
© Вивчаємо інформатику teach-inf.at.ua
Властивості компонента StringGrid
Розділ 9 § 35
Виведення зафіксованого рядка з індексами елементів масиву не є обов'язковим, але буває дуже корисним під час аналізу правильності роботи програми. Вміст зафіксованих комірок змінюється тільки програмним способом, зазвичай у процедурі обробки події OnCreate для форми:
var і: Integer;
Begin // нумерація стовпців і рядків починається з нуля
For і := 1 to 6 do StringGrid1.Cells[i-1, 0] := IntToStr(i);
end;
9
© Вивчаємо інформатику teach-inf.at.ua
Властивості компонента StringGrid
Розділ 9 § 35
Заповнити масив випадковими числами.
var a: array[1..6] of Integer;
і: Integer; // індекс
begin
Randomize;
For і := 1 to 6 do begin
a[i] := Random(20);
StringGrid1.Cells[i-1, 1] := IntToStr(a[i]);
end;
end;
9
© Вивчаємо інформатику teach-inf.at.ua
Властивості компонента StringGrid
Розділ 9 § 35
Очистити вміст таблиці:
StringGrid1.Rows[1].Clear;
9
© Вивчаємо інформатику teach-inf.at.ua
Можливість редагування комірок таблиці StringGrid
Розділ 9 § 35
За можливість редагування звичайних комірок відповідає одне зі значень властивості Options. У вікні Інспектор об'єктів список Options містить 15 елементів, які можуть набувати значень:
True
False
або
9
© Вивчаємо інформатику teach-inf.at.ua
Можливість редагування комірок таблиці StringGrid
Розділ 9 § 35
Щоб в активному вікні програми можна було редагувати вміст комірок, необхідно надати значення True таким елементам списку Options:
можливість редагувати вміст комірок;
goEditing
у разі натискання клавіші Tab фокус переміщається на сусідню комірку таблиці;
goTabs
під час отримання коміркою фокуса текст у ній стає доступним для редагування (при goEditing = True).
goAlwaysShowEditor
9
© Вивчаємо інформатику teach-inf.at.ua
Можливість редагування комірок таблиці StringGrid
Розділ 9 § 35
Заповнити таблицю з клавіатури і знайти середнє арифметичне елементів масиву.
9
© Вивчаємо інформатику teach-inf.at.ua
Можливість редагування комірок таблиці StringGrid
Розділ 9 § 35
Текст відповідної процедури:
var a: array[1..6] of Integer;
sum: Integer; // сума елементів
sr: Real; // середнє арифметичне
і: Integer; // індекс
begin
// введення масиву
{ Функція Length() повертає довжину рядка. Вважаємо, що якщо комірка порожня, то відповідний елемент масиву дорівнює нулю }
9
© Вивчаємо інформатику teach-inf.at.ua
Можливість редагування комірок таблиці StringGrid
Розділ 9 § 35
Продовження…
For і := 1 to 6 do
If Length(StringGrid1.Cells[i-1, 1]) <> 0
Then a[i] := StrTolnt(StringGrid1.Cells[i-1, 1])
else a[i] := 0;
// опрацювання масиву
sum := 0;
For і := 1 to 6 do sum := sum + a[i];
sr := sum / 6:
Label1.Caption := 'Сума елементів: ' + IntToStr(sum) + #13#10 + 'Середнє арифметичне:' + FloatToStr(sr); { #73#/0 — службові символи повернення каретки і перенесення рядка відповідно }
end;
9
© Вивчаємо інформатику teach-inf.at.ua
Розгадайте ребус
Середнє
Розділ 9 § 35
9
© Вивчаємо інформатику teach-inf.at.ua
Питання для самоперевірки
Розділ 9 § 35
9
© Вивчаємо інформатику teach-inf.at.ua
Питання для самоперевірки
Розділ 9 § 35
9
© Вивчаємо інформатику teach-inf.at.ua
Домашнє завдання
Проаналізувати
§ 35, ст. 194-197
Розділ 9 § 35
9
© Вивчаємо інформатику teach-inf.at.ua
Працюємо за комп’ютером
Розділ 9 § 35
Сторінка
196-197
Вправа 35
9
© Вивчаємо інформатику teach-inf.at.ua
Дякую за увагу!
teach-inf.at.ua
9