TStringGrid的相关问题
背景:装了一个c++ builder 6.0,但是没有帮助文档。据说帮助文档也很烂。
上网找资料,基本上都是delphi的。很烦恼。
我看了这个控件的一些事件,没帮助文档,真难搞啊。
----哥哥------------------------------------
我想实现以下这么几个功能:
1 我双击击一个cell,那一row全都变色。
2 我双击一个cell,我可以更改这个cell里面的数据。
3 我看到delphi里面有个从文件中来读取数据和保存到文件的,但是c++ builder里面用不来。
请介绍一下相关头文件,和函数名。
-----
[解决办法]
1. 双击一个Cell,所在行全部变色,这个在OnDrawCell事件中处理。
2. 双击一个Cell,可以更改Cell里的数据,这个只要StringGrid的Options属性:
goRowSelect为false,goEditing为true
3. 遍历所有行或所有列,将TStrings数据写入文件即可,自己编一个函数。
[解决办法]
双击修改cell值
void __fastcall TForm4::StringGrid1DblClick(TObject *Sender){ StringGrid1->Options<< goEditing;}
[解决办法]
变色,
h文件
private:// User declarations
int curRow;
cpp文件
void __fastcall TForm4::StringGrid1DblClick(TObject *Sender){ StringGrid1->Options<< goEditing; curRow = this->StringGrid1->Row; StringGrid1->Repaint();}//---------------------------------------void __fastcall TForm4::StringGrid1DrawCell(TObject *Sender, int ACol, int ARow, TRect &Rect, TGridDrawState State){ if( ARow == curRow ) { StringGrid1->Canvas->Brush->Color = clRed; StringGrid1->Canvas->Font->Color = clYellow; StringGrid1->Canvas->FillRect(Rect); StringGrid1->Canvas->TextOutA(Rect.left+2,Rect.top+2,StringGrid1->Cells[ACol][ARow]); }}