Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛАБ_ЗАД_ООПТС_15_06_2012.doc
Скачиваний:
7
Добавлен:
24.09.2019
Размер:
193.54 Кб
Скачать

5. Таблица StringGrid

В целочисленной матрице А(4, 4) поменять местами первую и последнюю строки. Решение

  1. Для нового проекта создадим новую папку, например D:\MyProject\StringGrid.

  2. Откроем новый проект, используя команду главного меню File|New|Application.

  3. Из страниц Standard и Additional на Form1 поместим два компонента StringGrid и три компонента Button.

  4. С помощью Инспектора Объектов свойствам компонентов StringGrid1 и StringGrid2 зададим следующие значения:

FixedCols - 0,

FixedRows - 0,

ColCount - 4,

RowCount - 4.

Изменим размеры компонентов StringGrid1 и StringGrid2 таким образом, чтобы в них умещалось 4 строки и 4 столбца.

  1. В Инспекторе Объектов для обеих таблиц выберем свойство Options. Войдем в него с помощью двойного щелчка мыши. Значение флага goEditing сделаем равным True.

  2. Для компонентов Button1, Button2 и Button3 зададим значение свойства Caption равным: ‘Решение ‘, ‘Решение 2’ и ‘Очистить’ соответственно.

  3. Активизируем кнопку «Решение 1» и создадим следующий обработчик события OnClick:

procedure TForm1.Button1Click(Sender: TObject);

var i : Integer;

begin

for i := 0 to 3 do

begin

StringGrid2.Cells[i,0] := StringGrid1.Cells[1,3];

StringGrid2.Cells[i,3] := StringGrid1.Cells[i,0];

StringGrid2.Cells[i,1] := StringGrid1.Cells[i,1];

StringGrid2.Cells[i,2] := StringGrid1.Cells[i,2];

end

end;

Напомним, что нумерация строк и столбцов начинается с 0, а в свойстве Cells[j,i] первый индекс обозначает номер столбца, а второй — номер строки.

8. Исходная задача может быть решена при помощи свойства Rows. Активизируем кнопку «Решение 2» и в заготовке обработчика события OnClick разместим сле­дующий код:

procedure TForml.Button2Click(Sender: TObject);

begin

StringGxid2.Rows[0] := StringGrid1.Rows[3];

StringGrid2.Rows[1] := StringGrid1.Rows[1];

StringGrid2.Rows[2] := StringGrid1.Rows[2];

StringGrid2.Rows[3] := StringGrid1.Rows[0];

end;

9. Для очистки второй таблицы предназначена кнопка «Очистить». Активизируем её и в заготовку обработчика события поместим следующий код:

procedure TForm1.Button3Click(Sender: TObject);

var i, j : Integer;

begin

for i := 0 to 3 do

for j := 0 to 3 do

StringGrid2.Cells[ j, i ] := ‘‘

end;

  1. Сохраним проект при помощи команды главного меню File|Save All и запустим его на выполнение.

Полный текст модуля Unit1.Pas

unit Unit1;

Interface

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Grids;

type

TForm1 = class(TForm)

StringGrid1: TStringGrid;

StringGrid2: TStringGrid;

Button1 : TButton;

Button2 : TButton;

Button3 : TButton;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);

var i:Integer;

begin

for i := 0 to 3 do

begin

StringGrid2.Cells[i,0] := StringGrid1.Cells[i,3] ;

StringGrid2.Cells[i,3] := StringGrid1.Cells[i,0];

StringGrid2.Cells[i,1] := StringGrid1.Cells[i,1];

StringGrid2.Cells[i,2] := StringGrid1.Cells[i,2];

end

end;

procedure TForm1.Button2Click(Sender: TObject);

begin

StringGrid2.Rows[0] := StringGrid1.Rows[3];

StringGrid2.Rows[1] := StringGrid1.Rows[1];

StringGrid2.Rows[2] := StringGrid1.Rows[2];

StringGrid2.Rows[3] := StringGrid1.Rows[0];

end;

procedure TForm1.Button3Click(Sender: TObject);

var i, j : Integer;

begin

for i := 0 to 3 do for j := 0 to 3 do

StringGrid2.Cells[j, i]:=‘‘

end;

end.

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