Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Ввод-вывод массивов





Ввод с клавиатуры

Чаще всего массив нужно не заполнять случайными значениями, а вводить с клавиатуры или считывать из файла. Для ввода значений пользователем удобнее всего использовать компонент TStringGrid , находящийся на закладке Additional. Он представляет собой таблицу с произвольно задаваемым числом столбцов и строк, в каждую ячейку которой можно вводить и выводить данные (рис. 1).

 

Рис. 1. Компонент TStringGrid

 

Основными свойствами компонента TStringGrid являются:

ColCount – общее число столбцов, включая фиксированные;

RowCount – общее число строк, включая фиксированные;

DefaultColWidth – ширина каждого столбца в пикселах:

DefaultRowHeight – высота каждой строки в пикселах;

FixedCols, FixedRows – число фиксированных столбцов и строк соответственно. Фиксированные столбцы и строки выделены цветом (она задается в свойстве FixedColor) и остаются на месте при прокрутке содержимого таблицы, поэтому в них очень удобно задавать заголовки столбцов и строк;

ScrollBars – управляет отображением полос прокрутки. Возможные значения: ssNone (нет), ssHorizontal (только горизонтальная полоска), ssVertical(только вертикальная полоска), ssBoth (обе полоски);

GridLineWidth – задает толщину линий сетки в пикселах.

Свойство Options представляет собой множество значений, управляющих работой TStringGrid. Среди этих значений:

goFixedVertLine – отображать вертикальные линии для фиксированных ячеек таблицы;

goFixedHorzLine– отображать горизонтальные линии для фиксированных ячеек таблицы;

goVertLine - отображать вертикальные линии для обычных ячеек таблицы;

goHorzLine- отображать горизонтальные линии для обычных ячеек таблицы;

goRangeSelect – возможность выделения диапазона ячеек, если отключен ввод данных в ячейки с клавиатуры;

goDrawFocusSelected – выделение редактируемой ячейки цветом;

goRowSizing – возможность изменения высоты строк пользователем;

goColSizing – возможность изменения ширины столбцов пользователем;

goRowMoving – возможность изменения порядка следования обычных строк при перетягивании их мышкой;

goColMoving - возможность изменения порядка следования обычных столбцов при перетягивании их мышкой;

goEditing – возможность ввода значений в ячейки таблицы пользователем с клавиатуры;

goTabs – клавиша Tab обеспечивает переход от ячейки к ячейке;

goRowSelect – выделение не отдельной ячейки, а целой строки;

goAlwaysShowEditor – постоянно включен режим редактирования содержимого ячеек и отображается текстовый курсор;

goThumbTracking – содержимое таблицы перерисовывается "на ходу", в процессе перетаскивания линеек прокрутки.

Для доступа из программы к содержимому каждой ячейки применяется массив Cells[столбец, строка]. Нумерация строк и столбцов ведется с нуля! Данные в ячейках хранятся как текст (тип данных String), поэтому при работе с числами необходимо выполнять преобразование.

Организуем ввод с клавиатуры двумерного массива вещественных чисел 4´5 элементов и найдем его максимальный элемент. Положим на форму компонент TStringGrid и установим его свойства следующим образом:

ColCount=4;

RowCount=5;

DefaultColWidth=50;

DefaultRowHeight=50;

FixedCols=0;

FixedRows=0;

ScrollBars=ssNone;

Options=[goEditing, goDrawFocusSelected]

 

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

 

VAR i,j:BYTE;

max:REAL;

begin

WITH StringGrid1 DO

BEGIN

max:=StrToFloat(Cells[1,1]);

FOR i:=1 TO ColCount-1 DO

FOR j:=1 TO RowCount-1 DO

IF StrToFloat(Cells[i,j])>max THEN

max:=StrToFloat(Cells[i,j]);

Label1.Caption:='Max='+FloatToStrF(max,ffFixed,10,4)

END

end;

 

Как видно, нет необходимости копировать введенные числа в статический массив – можно напрямую работать с массивом Cells.

В приведенном примере для простоты отсутствует защита от ввода неверных значений. В реальной программе, разумеется, надо ставить оператор TRY…EXCEPT.

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

StringGrid1.Cells[0,0]:='Длина, мм';

занесет значение "Длина, мм" в левую верхнюю ячейку таблицы.

 

Date: 2015-06-06; view: 471; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.007 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию