TStringGrid - таблица строк

Содержание

Слайд 2

Компонент TStringGrid предназначен для создания таблиц, в ячейках которых располагаются произвольные

Компонент TStringGrid предназначен для создания таблиц, в ячейках которых располагаются произвольные

текстовые строки. Он является прямым потомком TDrawGrid , от которого им унаследовано большинство свойств и методов.
Таблица делится на две части - фиксированную и рабочую. Фиксированная служит для показа заголовков столбцов/рядов и для ручного управления их размерами. Обычно фиксированная часть занимает крайний левый столбец и самый верхний ряд таблицы, однако с помощью свойств FixedCols и FixedRows можно задать другое количество фиксированных столбцов и рядов (если эти свойства имеют 0, таблица не содержит фиксированной зоны). Рабочая часть - это остальная часть таблицы. Она может содержать произвольное количество столбцов и рядов, более того, эти величины могут изменяться программно. Рабочая часть может не умещаться целиком в пределах окна компонента, в этом случае в него автоматически помещаются нужные полосы прокрутки. При прокрутке рабочей области фиксированная область не исчезает, но меняется ее содержимое - заголовки строк и рядов.
Слайд 3

Центральным свойством компонента является Cells - двухмерный массив ячеек, каждая из

Центральным свойством компонента является Cells - двухмерный массив ячеек, каждая из

которых может содержать произвольный текст. Конкретная ячейка определяется парой чисел - номером столбца и номером ряда, на пересечении которых она находится (нумерация начинается с нуля). Свойство cells имеет тип String, поэтому программа может легко прочитать или записать содержимое нужной ячейки. Например:
Cells [1,1] := 'Левая верхняя ячейка рабочей зоны';
Количество ячеек по каждому измерению хранит пара свойств Colcount (количество столбцов) и RowCount (количество рядов). Значения-этих свойств и, следовательно, размеры таблицы могут меняться как на этапе разработки программы, так и в ходе ее работы, однако их значения должны быть как минимум на единицу больше соответственно значений в свойства FixedCois и FixedRows, определяющих размеры фиксированной зоны.
Слайд 4

Содержимое ячеек можно редактировать. Для этого в таблице используется специализированный потомок редактора TMaskEdit. Свойства компонента:

Содержимое ячеек можно редактировать. Для этого в таблице используется специализированный потомок

редактора TMaskEdit.

Свойства компонента:

Слайд 5

Слайд 6

Слайд 7

Два метода класса могут оказаться полезными для процедуры прорисовки:

Два метода класса могут оказаться полезными для процедуры прорисовки:

Слайд 8

Пример В следующем примере компонент TStringGrid используется для показа всех слов

Пример

В следующем примере компонент TStringGrid используется для показа всех слов из

произвольного текстового файла.
Назовите пустую форму именем fmStGrid и положите на нее панель TPanel.
Установите в свойство панели Align значение alBottom, чтобы панель всегда занимала самую нижнюю часть окна, и удалите текст в ее свойстве caption.
Поместите на панель кнопку TBitBtn, установите в ее свойство
Caption строку Открыть файл..., загрузите в свойство Glyph файл images | buttons | FILE OPEN.BMP и растяните кнопку по горизонтали так, чтобы надпись и пиктограмма полностью умещались на ее поверхности.
Слайд 9

Поместите на панель еще одну кнопку TBitBtn и установите в ее

Поместите на панель еще одну кнопку TBitBtn и установите в ее

свойство Kind значение bkClose.
Поместите на панель компонент OpenDialog из страницы компонентов Dialogs. Этот компонент создает и обсуживает стандартное для Windows окно открытия файла. С его помощью при прогоне программы вы сможете выбрать текстовый файл (например, файл с текстом программы), чтобы программа показала в таблице все слова из этого файла.
На форму (а не на панель panel1) положите компонент TStringGrid.
Поместите в его свойства ColCount и RowCount значения 2 (количество колонок и рядов таблицы должно быть больше, чем количество фиксированных колонок FixedCois и количество фиксированных рядов FixedRows). Установите в свойство Align компонента значение alClient, чтобы он занял все свободное место формы.
На этом закончим этап конструирования формы. Вся основная работа будет связана с нажатием кнопки BitBtn1: программа сначала предложит вам выбрать текстовый файл, затем прочитает его и создаст список отсортированных в алфавитном порядке слов из каждой строки файла, после чего наполнит словами таблицу. Наполнение будет происходить так, чтобы каждый столбец строки содержал все слова, начинающиеся на одну и ту же букву.
Слайд 10

Создайте такой обработчик события OnClick для кнопки BitBtn1: procedure TfmStGrid.BitBtnIClick(Sender: TObject)

Создайте такой обработчик события OnClick для кнопки BitBtn1:
procedure TfmStGrid.BitBtnIClick(Sender: TObject)

;
Function GetWord(var S: String): String;
{ Вспомогательная функция для выделения очередного слова из
строки }
const // Множество символов слова:
Letters: set of Char = ['a'..'z', 'A'..'Z', 'A'..'я'];
begin
Result := '' ;
{ Уничтожаем в начале строки все символы, не относящиеся к слову }
while (S о '') and not (S[1] in Letters) do
Delete (S, 1, 1);
// Формируем очередное слово
while (S<> '') and (S[1] in Letters) do
begin
Result := Result + S[1];
Delete (S, 1, 1)
end;
end; //Get Word
var
F: TextFile; // Файл с текстом S,
Word: String; // Вспомогательные строки
NCol, NRow: Integer;// Номер текущей колонки и текущего ряда Words: TStringList; // Список отсортированных слов из файла
begin
// С помощью стандартного диалога получаем имя файла
if not OpenDialogI.Execute then
Exit; // Пользователь отказался выбрать файл
// Пытаемся открыть файл
AssignFile(F, OpenDialogI.FileName) ;
try
Reset(F) ;
except
// Файл нельзя открыть:
ShowMessage('Невозможно открыть файл ' +OpenDialogI.FileName) ;
Exit;
end;