Использование компонента StringGrid для представления двухмерных массивов

Страницы работы

Фрагмент текста работы

фиксированных, не прокручиваемых столбцов и строк, используемых для размещения номеров столбцов и строк).

)ПРИМЕЧАНИЕ Компонент StringGnd представляет собой таблицу, содержащую строки. Таблица — может иметь полосы прокрутки, причем заданное число первых строк и столбцов может быть фиксированным и не подвергаться прокрутке. Таким образом, можно задать заголовки столбцов и строк, постоянно присутствующие в окне компонента. Каждой ячейке таблицы может быть поставлен в соответствие некоторый объект.

Справа от объекта StringGrid разместите кнопку Buttonl и задайте для ее свойства Caption значение «Заполнить». Ниже объекта StringGrid расположите панель GroupBoxl и присвойте ее свойству Caption значение «Определить». На Ёэтой панели разместите компоненты CheckBoxl, CheckBox2, СпескВохЗ и присвойте их свойствам Caption значения «Минимальный элемент», «Максимальный Црлемент», «Сумма элементов главной диагонали» соответственно. Справа от компонентов CheckBoxl, CheckBox2, СпескВохЗ разместите компоненты Editl, Edit2, Edit3 и удалите текст «Editl», «Edit2», «Edit3» из соответствующих компонентов. Правее панели GroupBoxl расположите кнопку Button2 и задайте для ре свойства Caption значение «Вычислить». Выровняйте компоненты на форме, как показано на рис. 13.7, и зафиксируйте их положение на форме. Сохраните файл проекта и программного модуля. Как и в предыдущем примере, прежде чем создавать обработчики событий щелчка мышью по кнопкам 1 Buttonl и Button2, следует добавить в раздел описания переменных данного модуля целочисленные переменные I и j( предназначенные для хранения \ индексов массива (I — номер столбца, J — номер строки):


var

Forml: TForml; I, J : integer;

Для получения подсказки Delphi по объекту StringGridl, указав объект, нажмите F1. В окне Delphi Help просмотрите общую информацию о назначении объекта. Щелкнув мышью по ссылке Properties (Свойства), откройте окно со списком свойств объекта и, выбирая нужные свойства, например, Cells, ColCount и т. п., просмотрите справочную информацию. Для возврата к предыдущему экрану справки воспользуйтесь кнопкой Назад в панели инструментов окна Delphi Help. Щелкая мышью по ссылкам Methods (Методы) и Events (События), просмотрите список методов и событий объекта. Для просмотра примеров следует щелкнуть мышью по ссылке Example. Завершив просмотр справочной информации, закройте окно Delphi Help.


т


ВНИМАНИЕ Обратите внимание на использование оператора with .. do для обращения к э- -----------  лементам объекта. При изучении языка Turbo Pascal вы использовали этот опе ратор для сокращения записи при обращении к полям записей. Теперь вы буде те применять его для сокращения записи при обращении к свойствам и методам объекта. Это делается для того, чтобы избежать повторных ссылок на объект в последующих операторах. В операторе, следующем за ключевым словом do, можно не указывать ссылки на поля, свойства и методы объекта. При этом каж дый идентификатор в операторе, совпадающий с именем поля, свойства, метода объекта, трактуется как относящийся к этому объекту, и к нему неявно добавля ется ссылка на этот объект. Например, вместо того чтобы, обращаясь к ячейке объекта StringGrldl,писать StringGridl. Cells[I.J],удобнее использовать оператор with StringGridl do, в теле которого можно неоднократно обращаться к Cells[I .J], не упоминая имени объекта StringGridl.


Использование компонента StringGrid для представления двухмерных массивов


393


Создайте процедуру обработчика события щелчка мышью по кнопке Buttonl, в которой сначала будет выполнена операция вывода номеров строк и столбцов, а затем ячейки StringGridl будут заполнены случайными целыми числами. Для этого выберите в окне Инспектора объектов объект Buttonl и на странице События сделайте двойной щелчок на пустом поле списка в событии OnClick. После этого отредактируйте заготовку процедуры обработчика этого события следующим образом: procedure TForml.ButtonlClick(Sender: TObject);

{заполнение массива}


 


{вывести номера строк в 0-м столбце и столбцов в 0-й строке}

{столбец 0}

{вывести номера строк}

begin Randomize: with StringGridl do

begin I:=0:

for J:= 1 to RowCount - 1 do Cells[I,J] := IntToStr(J); J:=0;               {строка 0}

{вывести номера столбцов}

for I:= 1 to Col Count - 1 do Ce11s[IJ] := IntToStr(I); end; with StringGridl do

{вывести в таблице элементы двухмерного массива}

for I := 1 to Col Count - 1 do for J:= 1 to RowCount - 1 do begin

Похожие материалы

Информация о работе