Изучение управляющего элемента StringGrid
Компонент StringGrid представляет собой таблицу, содержащую строки. Данные таблицы могут быть только для чтения или редактируемыми. Таблица может иметь полосы прокрутки, причем заданное число первых строк и столбцов может быть фиксированным и не прокручиваться. Таким образом, можно задать заголовки столбцов и строк, постоянно присутствующие в окне компонента. Каждой ячейке таблицы может быть поставлен в соответствие некоторый объект. Компонент StringGrid находится на вкладке Additional панели компонентов. Таблица StringGrid состоит из выделенных серым FixedCols и FixedRows - зафиксированных ячеек-заголовков, и обычных, белых ячеек. Содержимое Fixed ячеек недоступно для редактирования, и меняется только программно. Для установки количества фиксированных ячеек можно изменить значение свойств FixedCols и FixedRows в окне свойств Object Inspector. Или поменять количество фиксированных строк и столбцов программно, написав в коде программы следующие команды:
StringGrid1-> FixedCols=1; // устанавливает 1 фиксированный столбец StringGrid1-> FixedRows=1; // устанавливает 1 фиксированную строку
Общее количество строк и столбцов в таблице можно установить вручную в окне Object Inspector, отредактировав свойства RowCount и ColCount, а можно изменить программно в ходе выполнения программного кода, написав следующие команды:
StringGrid1-> RowCount=5 //устанавливаем общее кол-во строк равное 5 StringGrid1-> ColCount=7 //устанавливаем общее кол-во столбцов равное 7
Эти свойства доступны как для записи (при установке количества строк и столбцов), так и для чтения (при проверке размер таблицы). За многие свойства компонента StringGrid отвечает свойство Options. В Инспекторе Объектов Options – это раскрывающийся список, представляющий собой элементы данного множества. Если значение элемента равно True, то он присутствует в множестве, если False – то нет (рис. 5).
Рисунок 5 – Панель Object Inspector Таблица 1. Свойства компонента StringGrid
Как следует из таблицы, за возможность редактирования содержимого ячеек с клавиатуры отвечает элемент goEditing свойства-множества Options. В Инспекторе Объектов установите его значение в True. Чтобы управлять этой возможностью программно, нужно включить или исключить из множества данный элемент:
StringGrid1-> Options< < goEditing; /*Включаем редактирование, другие элементы не трогаем*/ StringGrid1-> Options> > goEditing; /*Выключаем редактирование, другие элементы не трогаем*/
Компонент StringGrid имеет возможность адресации каждой отдельной ячейки по номеру столбца и строки (рис. 6).
Рисунок 6 – Компонент StringGrid
Содержимое ячейки (i, j), где где i - номер столбца, j - номер строки, имеет вид: StringGrid 1-> Cells [ i ][ j ] и доступно как для чтения, так и для записи. Например: StringGrid 1-> Cells [ i ][ j ]=” Hello ”; - записывает слово в ячейку с координатами i и j. a=StringGrid1-> Cells[i][j]; - считывает содержимое ячейки с координатами i и j в переменную a. Номера столбцов (i) и строк (j) отсчитываются от нуля. Выделенная ячейка таблицы имеет: номер столбца: StringGrid1-> Col номер строки: StringGrid1-> Row, поэтому содержимое выделенной ячейки будет адресоваться так: S=StringGrid1-> Cells[StringGrid1-> Col][StringGrid1-> Row]; У таблицы StringGrid также есть свойство и для управления размером ячеек. Для всех ячеек: DefaultRowHeight - высота строк по умолчанию DefaultColWidth - ширина столбцов по умолчанию Эти значения ширины и высоты принимают все новые ячейки. При необходимости индивидуально установить ширину и высоту столбцов и строк соответственно, пользуемся свойствами: RowHeights [ i ] - массив, содержащий высоты строк с номером i; ColWidths [ i ] - массив, содержащий ширины столбцов с номером i. Ширину, а также надписи заголовков, располагающиеся в строках и столбцах " фиксированной" зоны таблицы можно настроить в обработчике события OnCreate формы или в функции: __fastcall TForm1:: TForm1(TComponent* Owner): TForm(Owner) В результате таблица появляется уже в " настроенном" виде.
Задание 2. Написать программу перемножения двух матриц размерностью 4х4. Защитить программу.
|