Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Programmir_na_Object_Pascal_lab_raboty_.doc
Скачиваний:
208
Добавлен:
11.03.2016
Размер:
14.48 Mб
Скачать

4.4. Компонент tStringGrid для ввода/вывода массивов

В Delphi имеется возможность организовать ввод/вывод двухмерных и одномерных массивов с отображением их на форме. Для этого используют специальный компонент TStringGrid (находится на странице Additional), который предназначен для отображения информации в виде двухмерной (одномерной) таблицы каждая ячейка которой представляет собой окно однострочного редактора (аналогично окну TEdit). Доступ к информации осуществляется с помощью свойства Cells[ACol : Integer; ARow : Integer] : String, где ACol, ARow – индексы элемента двумерного массива. Свойства ColCount и RowCount устанавливают количество столбцов и строк в таблице, а свойства FixedCols и FixedRows задают количество столбцов и строк фиксированной зоны. Фиксированная зона выделена другим цветом, и в нее запрещен ввод информации с клавиатуры.

4.5. Пример написания программы с использованием tStringGrid

Задание: Двухмерный массив (матрица) вещественных чисел A, размером NxM, вводится с клавиатуры (компонент TStringGrid). Найти количество положительных элементов массива и их сумму, а также количество отрицательных элементов массива и их произведение.

Интерфейс программы приведен на рис. 4.1, а текст программы - на Листинге 4.1.

Рис. 4.1. Интерфейс программы

В программе для задания числа строк и столбцов матрицы использованы компоненты TSpinEdit (страница Samples). Использование этих компонентов очень удобно для ввода целых чисел, т.к. у них есть такие свойства как MinValue и MaxValue, с помощью которых можно задавать диапазон изменения значений в компоненте. В данной программе следует задать эти свойства как: MinValue=1, MaxValue=10. Это будет означать, что значение переменной в поле TSpinEdit будет изменяться от 1 и до 10. Подстройка числа столбцов и строк таблицы TStringGrid в зависимости от значений переменных TSpinEdit выполняется в обработчиках OnChange (см. Листинг 4.1).

Заметим, что вместо компонента TSpinEdit можно использовать комбинацию двух компонентов TEdit и TUpDown (компонент TUpDown находится на странице Win32). Для этого надо поместить на форму эти два компонента по отдельности, а затем с помощью свойства Associate связать TUpDown с TEdit. Визуально это будет выглядеть так, что как будто компонент TUpDown "перепрыгнет" к TEdit и займет свое положение в конце поля TEdit.

Для упрощения и ускорения процесса ввода данных в ячейки таблицы можно сделать так, чтобы курсор автоматически переходил в следующую ячейку таблицы, например, в результате нажатия клавиши <Enter>. Сделать это можно при помощи процедуры обработки события OnKeyPress для таблицы. На эту же процедуру можно возложить задачу фильтрации данных, вводимых в ячейку таблицы.

В нашем случае надо разрешить:

-ввод в ячейку только цифр;

-ввод минуса только на первой позиции, т.е. когда ячейка пустая;

-точку автоматически заменять на запятую;

-ввод только одной запятой.

-при нажатии в ячейке клавиши <Enter>, курсор должен переходить на следующую ячейку, расположенную справа.

Текст процедуры обработки события OnKeyPress для таблицы приведен также на Листинге 4.1.

Листинг 4.1

unit Unit1;

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