// Программный код приложения , демонстрирующего ряд свойств таблицы
StringGrid
#include <vcl.h>
#pragma hdrstop
#include "iostream.h"
#include "Unit1_Grid.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
//Занесение надписей в ячейки таблицы по указанным адресам
StringGrid1->Cells[1][0]= "Исходные данные";
StringGrid1->Cells[0][1]="Первое слагаемое ";
StringGrid1->Cells[0][2]="Второе слагаемое ";
StringGrid1->Cells[0][3]="Сумма ";
Memo1->Clear();
//Занесение операторов кода в поле Memo1
Memo1->Lines->Add( "StringGrid1->Cells[1][0]=Исходные данные");
Memo1->Lines->Add( "StringGrid1->Cells[0][1]=Первое слагаемое");
Memo1->Lines->Add( "StringGrid1->Cells[0][2]=Второе слагаемое ");
Memo1->Lines->Add( "StringGrid1->Cells[0][3]=Сумма ");
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int X,Y,Z;
//Преобразование строковых переменных в целочисленные
X=StrToInt( StringGrid1->Cells[1][1] );
Y=StrToInt( StringGrid1->Cells[1][2]);
Z= X+Y;
//Преобразование целочисленной переменной Z в строковую и запись ее в ячейку по //указанному адресу
StringGrid1->Cells[1][3]=IntToStr(Z);
Memo1->Clear();
//Занесение операторов кода в поле Memo1
Memo1->Lines->Add(" int X,Y,Z");
Memo1->Lines->Add(" X=StrToInt( StringGrid1->Cells[1][1] )");
Memo1->Lines->Add(" Y=StrToInt( StringGrid1->Cells[1][2])");
Memo1->Lines->Add("Z= X+Y; StringGrid1->Cells[1][3]=IntToStr(Z)");
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{
//Занесение надписи в ячейку таблицы по указанному адресу
StringGrid1->Cells[2][0]= "Одном.массив ввод";
//Ввод в ячейки таблицы элементов одномерного массива
for(int i=1;i<10;i++)
{
int y =i*i;
StringGrid1->Cells[2][i]= IntToStr(y);
}
//Занесение операторов кода в поле Memo1
Memo1->Clear();
Memo1->Lines->Add(" StringGrid1->Cells[2][0]= Одном.массив ввод");
Memo1->Lines->Add("for(int i=1;i<10;i++)");
Memo1->Lines->Add( "{ int y =i*i; StringGrid1->Cells[2][i]= IntToStr(y);");
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button4Click(TObject *Sender)
{
//Вывод в ячейки таблицы элементов одномерного массива
StringGrid1->Cells[3][0]= "Одном.массив вывод";
for(int i=1;i<10;i++)
{
int y ;
y=StrToInt(StringGrid1->Cells[2][i]);
StringGrid1->Cells[3][i]= IntToStr(++y);
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button5Click(TObject *Sender)
{
//Ввод в ячейки таблицы элементов двумерного массива
StringGrid1->Cells[4][0]= "Двум.массив ";
StringGrid1->Cells[5][0]= "размерностью [3][3]";
StringGrid1->Cells[6][0]= "ввод";
for(int i=1;i<4;i++)
for(int j=1;j<4;j++)
{
int y =i*i+j;
StringGrid1->Cells[j+3][i]= IntToStr(y);
}
Memo1->Clear();
//Занесение операторов кода в поле Memo1
Memo1->Lines->Add(" StringGrid1->Cells[4][0]= Двум.массив ;");
Memo1->Lines->Add(" StringGrid1->Cells[5][0]= размерностью [3][3];");
Memo1->Lines->Add(" StringGrid1->Cells[6][0]= ввод;");
Memo1->Lines->Add(" for(int i=1;i<4;i++) ");
Memo1->Lines->Add(" for(int j=1;j<4;j++) ");
Memo1->Lines->Add("{ int y =i*i+j; ");
Memo1->Lines->Add("StringGrid1->Cells[j+3][i]= IntToStr(y);");
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button6Click(TObject *Sender)
{
//Вывод в ячейки таблицы элементов двумерного массива
StringGrid1->Cells[7][0]= "Двум.массив ";
StringGrid1->Cells[8][0]= "размерностью [3][3]";
StringGrid1->Cells[9][0]= "Вывод";
for(int i=1;i<4;i++)
for(int j=1;j<4;j++)
{
int y ;
y=StrToInt(StringGrid1->Cells[j+3][i]);
StringGrid1->Cells[j+6][i]= IntToStr(y);
}
Memo1->Clear();
//Занесение операторов кода в поле Memo1
Memo1->Lines->Add(" StringGrid1->Cells[7][0]= Двум.массив ;");
Memo1->Lines->Add(" StringGrid1->Cells[8][0]= размерностью [3][3];");
Memo1->Lines->Add(" StringGrid1->Cells[9][0]= Вывод;");
Memo1->Lines->Add(" for(int i=1;i<4;i++) ");
Memo1->Lines->Add(" for(int j=1;j<4;j++) ");
Memo1->Lines->Add("{ int y ;y=StrToInt(StringGrid1->Cells[j+3][i]); ");
Memo1->Lines->Add(" StringGrid1->Cells[j+6][i]= IntToStr(y);");
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button7Click(TObject *Sender)
{
//Ввод текста в третий столбец
StringGrid1->Cols[3]->Add("Ввод текста в столбец");
Memo1->Clear();
//Занесение операторов кода в поле Memo1
Memo1->Lines->Add("StringGrid1->Cols[3]->Add(Ввод текста в столбец); ");
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button8Click(TObject *Sender)
{
//Ввод текста в третью строку
StringGrid1->Rows[3]->Add("Ввод текста в строку");
Memo1->Clear();
//Занесение операторов кода в поле Memo1
Memo1->Lines->Add(" StringGrid1->Rows[3]->Add(Ввод текста в строку);");
}
//---------------------------------------------------------------------------
Рис.5.20 Программный код приложения, характеризующего основные свойства таблицы StringGrid
В программном коде( Рис.5.20) показано, что свойства компонента StringGrid реализуются при включении радио кнопок Button1 – Button8 . Изменяемые свойства непосредственно отображаются на самом компоненте ,а соответствующий программный код заносится в окно редактора Memo1. Программа позволяет заносить в указанные ячейки таблицы текстовую и числовую информацию, вводить и выводить одномерные и двумерные массивы, вводить текстовую информацию в указанный столбец или строку. Назначение операторов программного кода поясняется подробными комментариями.