Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Л5.doc
Скачиваний:
15
Добавлен:
30.10.2018
Размер:
208.38 Кб
Скачать

6. Таблиця рядків — компонент StringGrid

Компонент StringGrid є таблицею, що містить рядки. Дані таблиці можуть бути тільки для читання або редагованими. Таблиця може мати смуги прокрутки, причому задане число перших рядків і стовпців може бути фіксованим і не прокручуватися. Таким чином, можна задати заголовки стовпців і рядків, які постійно присутні у вікні компоненту. Кожному елементу таблиці може бути поставлений у відповідність деякий об'єкт.

Основні властивості компоненту, які визначають текст, що відображається:

System:: AnsiString Cells[int ACol][int ARow] - рядок, що міститься в комірці з індексами стовпця і рядка ACol і ARow.

Classes::TStrings* Cols[int Index] - список рядків і пов'язаних з ними об'єктів, що містяться в стовпці з індексом Index.

Classes::TStrings* Rows [int Index] - список рядків і пов'язаних з ними об'єктів, що містяться в рядку з індексом Index.

System::TObject* Objects [int ACol][int ARow] - Об'єкт, пов'язаний з рядком, що міститься в комірці з індексами стовпця і рядка ACol і ARow.

Всі ці властивості доступні під час виконання програми. Задавати тексти можна програмно або по окремих коміркам, або відразу по стовпцях і рядках за допомогою методів класу TStrings. Наприклад, код:

Int i, j;

for (i=1; i < StringGrid1->ColCount; i++)

SrringGrid1->Cells[i] [0] = "стовпець " + IntToStr(i);

for (i=1; i < StringGrid1->RowCount; i++)

{

StringGrid1->Cells[0][i] - "рядок " + IntToStr(i);

for (j = 1; j < StringGridl->RowCount; j++)

StringGrid1->Cells[j][i] = IntToStr (i) + ':' + IntToStr(j);

}

Властивості ColCount і RowCount визначають відповідно число стовпців і рядків, властивості FixedCols і FixedRows — число фіксованих, не прокручуваних стовпців і рядків. Колір фону фіксованих комырок визначається властивістю FixedColor. Властивості LeftCol і TopRow визначають відповідно індекси першого видимого на екрані в даний момент прокручуваного стовпця і першого видимого прокручуваного рядка.

Властивість ScrolLBars визначає наявність в таблиці смуг прокрутки. Причому смуги прокрутки з'являються і зникають автоматично залежно від того, поміщається таблиця у відповідний розмір, чи ні.

Властивість Options є множинною, що визначає багато властивостей таблиці: наявність розділових вертикальних і горизонтальних ліній у фіксованих (goFixedVertLine і goFixedHorzLine) і не фіксованих (goVertLine і goHorzLine) комірок, можливість для користувача змінювати за допомогою миші розміри стовпців і рядків (goColSizing і goRowSizing), переміщати стовпці і рядки (goColMoving і goRowMoving) і багато що інше. Важливим елементом у властивості Options є goEditing —можливість редагувати вміст таблиці.

В основному компонент StringGrid використовується для вибору користувачем якихось значень, відображених в комірках.

Властивості Col і Row показують індекси стовпця і рядка виділеної комірки. Можливо також виділення користувачем декількох комірок, рядків і стовпців.

Серед подій компоненту StringGrid слід зазначити подія OnSelectCell, що виникає у момент вибору користувачем комірки. У обробник цієї події передаються цілі параметри ACol і ARow — стовпець і рядок виділеної комірки, і булевий параметр CanSelect — допустимість вибору. Параметр CanSelect можна використовувати для заборони виділення комірки, задавши його значення false. А параметри ACol і ARow можуть використовуватися для якоїсь реакції програми на дії користувача. Наприклад, оператор:

Label1->Caption = "Вибрана комірка "+intToStr(ARow) +

';' + IntToStr(ACol) + ". Текст: " +

StringGrid1->Cells[ACol][ARow];

виведе в мітку Label1 повідомлення про рядок, стовпець і текст вибраної комірки.

Контрольні питання:

  1. Які властивості стандартних компонентів визначають текст, що відображується у них?

  2. Яким чином можна відобразити текст надпису у декількох рядках?

  3. Які властивості визначають місце розташування компонентів на формі?

  4. Які властивості визначають тип вирівнювання тексту у компоненті?

  5. Яким чином задається маска введення для компонента MaskEdit?

  6. У чому полягає відмінність компонентів Memo та RichEdit?

  7. Яка властивість визначає рядки списку для списочних компонентів?

  8. Як зв’язати елементи списку ComboBoxEx із зображеннями?

  9. Якими властивостями визначається кількість стовпчиків і рядків для компонента StringGrid?

  10. Яка властивість містить текстову інформацію, яка розташована у комірці таблиці?

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]