Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






Теоретические сведения. Компонент TStringGrid (таблица строк)




Компонент TStringGrid (таблица строк)

Компонент TStringGrid (таблица) представляет собой элемент, позволяющий отображать данные, разбитые на строки и столбцы. Добавляется компонент с помощью кнопки на дополнительной (Additional) панели инструментов. Таблица строк позволяет хранить и автоматически отображать текстовую информацию. Некоторые свойства компонента TStringGrid приведены в табл. 16.1.

Таблица 16.1. Свойства TMemo

Свойство Описание свойства Примеры значений
ColCount Количество столбцов таблицы 3; 7
RowCount Количество строк таблицы 5; 8
DefaultColWith Ширина колонки приведена в пикселях, свойство распространено на все ячейки, кроме тех, где установлены свои значения 64 — по умолчанию; 50
DefaultRowHeight Высота строки дана в пикселях, свойство распространено на все ячейки, кроме тех, где установлены свои значения 24 — по умолчанию; 50
FixedCols Количество фиксированных столбцов таблицы, которые не перемещаются слева и могут выделяться цветом 1 — по умолчанию); 3
FixedRows Количество фиксированных строк таблицы, которые не перемещаются вверх и могут выделяться цветом 1 — по умолчанию; 2
Cells[ACol, ARow: Integer]: string; Строка, содержащаяся в столбце ACol и строке ARow Произвольная строка символов
ScrollBars Наличие полос прокрутки ssBoth — обе полосы; ssNone — прокрутка допустима

Пример 16.1. Создать и вывести на экран динамическую матрицу целых чисел указанного размера. Матрицу заполнить с помощью датчика случайных чисел. Экранная форма программы показана на рис. 16.1. Фрагмент кода программы с описанием матрицы, подпрограммой формирования матрицы и вывода матрицы в компонент TStringGrid имеет вид

 

type

TaArray= array of array of integer; //описание типа динамической матрицы

...

var

FrmMain: TFrmMain;

A:TAarray; //глобальная переменная — динамическая матрица

Implementation

{формирование динамической матрицы размера Row Х Col}

procedure inputArray( var Arr:TAarray;Row,Col:integer);

var i,j:integer;

begin

randomize;

SetLength(Arr,Row,Col); //выделяем память под матрицу

for i:=low(Arr) to high(arr) do

for j:=low(Arr[i]) to high(Arr[i]) do

Arr[i,j]:=random(10); //заполняем элементы матрицы

// случайными числами от 0 до 10

end;

{Обработчик события нажатия кнопки «Заполнение матрицы»}

procedure TFrmMain.BtnRandClick(Sender: TObject);

var i,j,r,c:integer;

begin

r:=strtoint(EdtRow.Text);

c:=strtoint(EdtCol.Text);

inputArray(A,r,c); //заполнение матрицы

strGrdA.ColCount:=c+1;

StrGrdA.RowCount:=r+1;

StrGrdA.ColWidths[0]:=90;//увеличиваем ширину 0-го столбца

StrGrdA.Cells[0,0]:='строки/столбцы';

for j:=1 to c+1 do

StrGrdA.Cells[j,0]:=inttostr(j); //строка заголовка

for i:=1 to r+1 do

StrGrdA.Cells[0,i]:=inttostr(i); //столбец заголовка

for i:=low(A) to high(A) do //вывод матрицы в компонент

for j:=low(A[i]) to high(A[i]) do

StrGrdA.Cells[j+1,i+1]:=inttostr(A[i,j]);

end;

Рис. 16.1. Экранная форма примера 16.1

Порядок выполнения работы

1. Создать приложение для решения задачи формирования и обработки двумерного динамического массива согласно варианту. Приложение должно содержать главную форму, в которой находится:

· главное меню;

· компоненты TStringGrid для ввода и вывода результатов;

· контекстное меню.

2. Разработать отдельные подпрограммы с параметрами:

· формирования динамической квадратной матрицы целочисленных данных;

· вывода на экран динамической матрицы в компонент StringGrid,

· удаления элементов (с изменением размера) динамической матрицы, заданных в варианте.

Размер исходной матрицы N вводится с клавиатуры и фактически не ограничен (ограничен оперативной памятью).

3. Обработать все возможные исключительные ситуации.

Возможный вид формы изображен на рис. 16.2.

 

 

Рис. 16.2. Экранная форма лабораторной работы №16

Варианты

1. Удалить все элементы, кратные 3: 2. Удалить все элементы, равные 0:
3. Удалить все четные элементы: 4. Удалить все нечетные элементы:
5. Удалить все нулевые элементы в четных строках: 6. Удалить все элементы, равные 0:
7. Удалить все элементы, равные 0, выше главной диагонали: 8. Удалить все элементы, равные 0, в нечетных столбцах:
9. Удалить все элементы, равные 1, расположенные ниже дополнительной диагонали: 10. Удалить все элементы слева от нечетных значений:
11. Удалить все элементы, равные 0: 12. Удалить все элементы, которые больше N / 2:
13. Удалить все элементы, равные 1, выше главной диагонали: 14. Удалить все элементы, которые меньше N / 2:
15. Удалить все элементы, равные 0, в четных строках и 1 в нечетных: 16. Удалить все четные элементы:
17. Удалить все элементы, кратные 2: 18. Удалить все элементы, кратные 3:
19. Удалить все ненулевые элементы, стоящие справа от четных значений: 20. Удалить все элементы, равные 0, с нечетной суммой индексов:
21. Удалить все элементы, равные 1, с четной суммой индексов 22. Удалить k нулевых элементов в k строке:
23. Удалить все нулевые элементы, расположенные выше главной диагонали и все единичные ниже ее: 24. Удалить все элементы, стоящие ниже нечетного значения на главной диагонали:
25. Удалить все четные элементы, расположенные выше дополнительной диагонали:

Контрольные вопросы

1. Компонент TStringGrid (таблица строк). Особенности его использования для вывода матрицы.

2. Основные свойства таблицы строк.

3. Особенности создания форм многооконных приложений.

4. Доступ к элементам дочерних форм.

5. Особенности закрытия дочерних форм.

Лабораторная работа № 17
Работа с объектами. Инкапсуляция. Наследование.
Полиморфизм. Создание заставки

Цель работы: получение навыков по созданию собственных классов.






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных