StringGrid的cell旋转存放有关问题

StringGrid的cell旋转存放问题
不好意思,请问一下  我希望把StringGrid1的cell旋转90和180和270度  以下我把旋转后的存放在StringGrid2
但是我最后是要StringGrid1旋转就好!!
但是我如果现在把StringGrid2的值读进去StringGrid1后
那原本样本就变了  角度会有问题@@
请问要怎么设计好呢?
想说再多设定一个StringGrid3来存放最刚开始的StringGrid1  只是觉得这样设计会不会太内存之类的
有没有甚么更好的方式?

void __fastcall TForm1::Button43Click(TObject *Sender) //旋转90度
{
StringGrid2->ColCount=StringGrid1->RowCount;
StringGrid2->RowCount=StringGrid1->ColCount;
for(int row=1;row<StringGrid2->RowCount;row++)
{
for(int col=1;col<StringGrid2->ColCount;col++)
{
StringGrid2->Cells[col][row]=StringGrid1->Cells[row][StringGrid1->RowCount-col];
}
}
}
//-----------------------------------------------------------------------
void __fastcall TForm1::Button45Click(TObject *Sender)
{
StringGrid2->ColCount=StringGrid1->RowCount; //旋转180度
StringGrid2->RowCount=StringGrid1->ColCount;
for(int row=1;row<StringGrid2->RowCount;row++)
{
for(int col=1;col<StringGrid2->ColCount;col++)
{
StringGrid2->Cells[col][row]=StringGrid1->Cells[StringGrid1->ColCount-col][StringGrid1->RowCount-row];
}
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button44Click(TObject *Sender) //旋转270度
{
StringGrid2->ColCount=StringGrid1->RowCount;
StringGrid2->RowCount=StringGrid1->ColCount;
for(int row=1;row<StringGrid2->RowCount;row++)
{
for(int col=1;col<StringGrid2->ColCount;col++)
{
StringGrid2->Cells[col][row]=StringGrid1->Cells[StringGrid1->ColCount-row][col];
}
}
}

------解决思路----------------------
如果字符串不需要显示出来的话直接定义个二维的字符串数组存储吧.

String str[100][100]  ;