- •2. Визуальные компоненты
- •2.1. Свойства
- •2.2. События
- •2.3. Методы
- •If Edit1.CanFocus then Edit1.SetFocus; {перед получением фокуса производится проверка на возможность передачи фокуса компоненту}
- •3. Работа с текстом
- •3.1. Использование надписей
- •3.2. Однострочный редактор
- •3.3. Общие свойства, события и методы компонентов редактирования
- •3.4. Класс tStrings
- •3.5. Многострочный редактор
- •3.6. Использование списков
- •3.7. Таблица String Grid
- •4. Кнопки и переключатели
- •4.1. Работа с кнопками
- •4.1.1. Стандартная кнопка
- •4.1.2. Кнопка с рисунком
- •4.2. Работа с переключателями
- •4.2.1. Переключатель с независимой фиксацией
- •If CheckBox1.Checked then MessageDlg ('Время истекло! ', mtError, [mbОк], 0);
- •4.2.2. Переключатель с зависимой фиксацией
- •4.3. Объединение элементов управления
- •5. Использование форм
- •5.1. Свойства, методы и события форм
- •5.2. Организация взаимодействия форм
- •5.3. Особенности модальных форм
- •5.4. Шаблоны форм
- •5.5. Процедуры и функции, реализующие диалоги
- •5.6. Стандартные диалоги
- •If OpenDialog1.Execute then // при отмене диалога открытие файла не происходит
- •If SaveDialog1.Execute then { Получить имя файла }
- •6.Главное и контекстное меню, панели инструментов
- •6.1. Класс tMenuItem
- •6.2. Cоздание главного и контекстного меню
- •6.3. Динамическая настройка меню
- •6.4. Панели инструментов
- •7. Создание графических изображений
- •7.1. Классы для работы с графикой
- •7.2. Основные компоненты для размещения изображений
- •7.3. Типы графических объектов
- •7.4. Создание диаграмм
- •8. Печать объектов
- •8.1. Класс tPrinter
- •8.2. Печать текста
- •Var fPrn: Text; // объявлена переменная типа Text.
- •8.3. Диалоговые окна для работы с принтером
- •8.4. Печать графических изображений
- •8.4.1. Печать форм
- •8.4.2. Печать диаграмм
- •9. Работа с датами
- •9.1. Преобразование даты
- •9.2. Компоненты для ввода дат
- •10. Сохранение параметров программы.
- •Ini : tIniFile; //объявляем переменную типа inifile
- •Ini : tIniFile; //объявляем переменную типа inifile
- •11. Обработка исключительных ситуаций
- •Var f: File; begin AssignFile(f, 'Somefile.Ext'); try // оператор, в котором возможна ошибка Reset(f); // работы с файлом finally CloseFile(f) end;
3.7. Таблица String Grid
Таблица String Grid является экземпляром класса TStringGrid и предназначена для отображения двумерной информации, например элементов матрицы. В таблице может находиться произвольное количество строк и столбцов.
На пересечении строк и столбцов находятся ячейки. Каждая ячейка может содержать символьную строку и произвольный объект, ассоциированный с ячейкой. Каждая ячейка таблицы может находится в одном из пяти состояний: пассивном, выделенном (выделена особым цветом), активном (выделена рамкой из точек), фиксированном (тоже выделена особым цветом) и в состоянии редактирования. Нумерация строк и столбцов таблицы начинается с нуля. Координаты каждой ячейки таблицы задаются парой чисел, первое из которых является номером столбца, а второе – номером строки.
Класс TCustomGrid, являющийся предком класса TStringGrid, содержит определение многих характеристик, общих для любых таблиц. Основные свойства класса TCustomGrid:
• property Col: Longint; задает столбец, в котором находится активная ячейка. Свойство доступно только на этапе выполнения программы.
• property ColCount: Longint; задает число столбцов в таблице.
• property ColWidths[Index: Longint]: Integer; задает ширину столбца с индексом index в таблице. Доступно только на этапе выполнения программы.
• property DefaultColWidth: Integer; задает исходную ширину всех столбцов.
• property DefaultDrawing: Boolean; если свойство имеет значение True, то прорисовка ячеек при рисовании таблицы будет происходить автоматически, в противном случае необходимо создать свои средства отображения.
• property DefaultRowHeight: Integer; задает исходную высоту всех строк.
• property RowHeights[Index: Longint]: Integer; задает высоту строки с индексом Index таблицы. Доступно только на этапе выполнения программы.
• property FixedColor: TColor; задает цвет фиксированных ячеек.
• property FixedCols: Integer; задает число фиксированных столбцов. По умолчанию задается один фиксированный столбец.
• property FixedRows: Integer; задает число фиксированных строк. По умолчанию задается одна фиксированная строка.
• property GridLineWidth: Integer; задает толщину линий между ячейками в пикселях.
• property Row: Longint; задает строку, в которой находится активная ячейка. Доступно только на этапе выполнения программы.
• property RowCount: Longint; задает число строк таблицы.
• property RowHeigth[Index:Longint]:Integer; задает высоту строк таблицы.
• property Selection: TGridRect; указывает область текущего выделения.
При выделении указываются номера строк и столбцов. Доступно только на этапе выполнения программы.
• property Options: TGridOptions; задает флаги, определяющие поведение таблицы:
o goFixedVertLine – фиксированные ячейки разделяются вертикальными линиями;
o goFixedHorzLine – фиксированные ячейки разделяются горизонтальными линиями;
o goVertLine – остальные ячейки разделяются вертикальными линиями;
o goHorzLine – остальные ячейки разделяются горизонтальными линиями;
o goRangeSelect – допустимо выделение нескольких ячеек;
o goDrawFocusSelected – активная ячейка закрашивается тем же цветом, которым закрашивается и выделенная, в противном случае закрашивается цветом нейтральных
ячеек;
o goRowSizing – высота строк таблицы может изменяться;
o goColSizing – ширина столбцов таблицы может изменяться;
o goRowMoving – строки таблицы могут перемещаться;
o goColMoving – столбцы таблицы могут перемещаться;
o goEditing – ячейки могут редактироваться;
o goTabs – переход от ячейки к ячейке возможен с помощью клавиши Таb (клавиш
Shift+Tab);
o goRowSelect – выделение только целых строк таблицы;
o goAlwaysShowEditor – при выделении ячейки она сразу же становится и активной (в
противном случае активизируется либо клавишей F2, либо двойным нажатием клавиши мыши, либо нажатием какой-либо символьной клавиши);
o goТhumbTracking – перемещение подвижной части таблицы синхронно с перемещением ползунка линейки скроллинга (в противном случае перемещение осуществляется только после того, как ползунок будет отпущен).
Основные свойства класса TStringGrid, позволяющие осуществлять доступ к данным, находящимся в ячейках таблицы и доступные только на этапе выполнения программы:
• property Cells[ACol, ARow: Integer]: string; содержит двумерный массив символьных строк, каждая из которых принадлежит ячейке, находящейся в столбце ACol, и строке ARow.
• property Cols[Index: Integer]: TStrings; позволяет получить доступ к столбцу с индексом Index.
• property Objects[ACol, ARow: Integer]: TObject; содержит двумерный массив, элементами которого являются указатели на объекты, каждый из которых ассоциирован с соответствующей ему ячейкой, находящейся в столбце ACol и строке ARow.
• property Rows[Index: Integer]: TStrings; позволяет получить доступ к строке с индексом index.
Событием по умолчанию для таблицы StringGrid является событие OnClick.
Пример использования компонента StringGrid
В целочисленной матрице А(4,4) поменять местами первую и последнюю строки.
StGr2.Rows[0]:= StGr1.Rows[3]; // StGr2.Cells[i,0]:= StGr1.Cells[i,3];
StGr2.Rows[3]:= StGr1.Rows[0]; // StGr2.Cells[i,3]:= StGr1.Cells[i,0];