главная карта сайта связь с нами

StringGrid

Компонент delphi StringGrid предназначен для отображения данных в табличной форме, при   размещении его на форме он принимает вид изображенным на рисунке 1.

 stringgrid delphi

рис 1

Из названия следует что в ячейках компонента StringGrid могут содержаться данные, типа String, и отображать графику. Таблица StringGrid может быть только для чтения и редактирования,  и состоит из выделенных серым зафиксированных ячеек-заголовков(FixedCols и FixedRows) недоступных для редактирования(меняется только программно), и белых ячеек имеющие возможность редактирования благодаря свойству Options. Для доступа к ячейкам программно используется
StringGrid1.Cells[i, j] где i — номер столбца, а j — номер строки.
А для доступа к выделенным ячейкам используется
S:=StringGrid1.Cells[StringGrid1.Col, StringGrid1.Row]; где StringGrid1.Col — номер столбца, StringGrid1.Row — номер строки, s — данные выделенной ячейки.
Иногда нам необходимо загрузить данные из Excel для такой возможности необходимо добавить в uses модуль ComObj, далее описать глобальную перемененную типа Variant:
var
Excel: Variant;
Далее, нам нужно создать объект Excel. Так как Excell Application создаётся пустым то необходимо добавить хотя бы одну книгу. Делаем это все в каком нибудь обработчике например в OnCreate формы
Excel:=CreateOleObject(‘Excel.Application’);
Excel.Application.WorkBooks.Add(‘ИмяФайла.xls’);
Теперь получаем данные из Excel. Следует обратить внимание на то, что в Delphi первым в индексе стоит номер столбца, а в Excel номер строки, то индексы должны располагаться на противоположных местах. Для получения данных из Excel в обработчике например нажатия кнопки вписываем код
with StringGrid1 do
for i:=1 to RowCount-1 do
for j:=1 to ColCount-1 do
Cells[j, i]:=Excel.WorkSheets.Item[‘Лист1’].Cells[i, j];
Для записи наших данных из таблицы StringGrid в Excel нужно воспользоваться другим кодом
for i:=1 to Grid.RowCount-1 do
for j:=1 to Grid.ColCount-1 do
Excel.WorkSheets.Item[‘Лист1’].Cells[i, j]:=Grid.Cells[j, i];
Ну естественно если нужно сохранить данные внесенные в таблицу Excel то дописываем
Excel.ActiveWorkbook.SaveAs(‘ИмяФайла’);

Свойства StringGrid

 ColCount  количество колонок в таблице
 RowCount количество строк в таблице
DefaultColWidth   ширина колонок в таблице
 DefaultRowHeight   высота строк в таблице
 FixedCols  количество зафиксированных колонок слева таблицы
 FixedRows  количество зафиксированных колонок сверху таблицы
 Cells   двумерный массив. Ячеек таблицы, находящихся на пересечении столбца(col) и строки(row)соответствует элементу cells[col, row]
GridLineWidth ширина линии ограничивающиая ячейки таблицы
 Options  если значение элементов описанных ниже равно True, то они присутствует, если False — то нет

 goFixedVertLine  вертикальные разделительные линии между «фиксированными» ячейками
goFixedHorzLine   горизонтальные разделительные линии между «фиксированными» ячейками
 goVertLine   вертикальные разделительные линии между «обычными» ячейками
 goHorzLine  горизонтальные разделительные линии между «обычными» ячейками
 goRangeSelect   дает возможность выделить диапазон ячеек таблицы
 goDrawFocusSelected  дает возможность закрашивания ячейки с фокусом
 goRowSizing  дает возможность менять высоту строк с помощью мыши
goColSizing дает возможность менять ширину столбцов с помощью мыши
 goRowMoving  дает возможность менять номер строки, т.е. перемещать её с помощью мыши
 goColMoving  дает возможность менять номер столбца, т. е. перемещать его с помощью мыши
 goEditing  дает возможность редактирования содержимого ячейки
 goTabs   при True фокус будет смещаться на следующую ячейку, при False — на следующий компонент
 goRowSelect  дает возможность выделять всю строку с «фокусированной» ячейкой
 goAlwaysShowEditor  если True содержимое ячейки при фокусе сразу будет доступно редактированию, а при False — сначала нужно щёлкнуть по ячейке мышкой
 goThumbTracking  при True перемещение полосы прокрутки мышкой будет вызываться немедленное перемещение ячеек, а при False — ячейки  будут перемещаться только при отпускании «бегунка»
Font Шрифт отображения содержимого ячеек

Что бы управлять программно под свойствами свойства option необходимо использовать
StringGrid1.Options:=StringGrid1.Options+[имя под свойств свойства Option]; включает
StringGrid1.Options:=StringGrid1.Options-[имя под свойств свойства Option];  Выключает
для включения сразу нескольких подсвойств необходимо использовать
StringGrid1.Options:=[список под свойств свойства Option разделенных между собой запятой];

Комментарии закрыты.

Подписаться

Введите адрес электронной почты: