DBGrid 动态生成列 内存溢出问题
窗体上放置文添加任何列的DBGrid组件
通过for循环来动态添加列,代码如下
TColumnEh *Column
Column = Grid->Columns->Add();
Column->FieldName = FName; //绑定字段名
Column->Title->Caption = FCaption; //显示列标题
Column->Width = 60;
现在的我问题是,width 为60的时候,总共19个列的总宽度就超过了DBGrid组件的可视宽度(即会产生横向滚动条),这时候重新加载DBGrid数据列程序便会卡死,然后爆出错误,有的时候是内存溢出,有的是列的数量溢出(类似于index溢出),但是如果我把width设置为50时,19个列的总宽度不超过组件的可视宽度时,重新加载数据DBGrid页面一切正常。
不止各位是否曾经遇到类似问题,请求各位前辈指点一二…… DBGrid?列?溢出
[解决办法]
String FName,FCaption;
TColumn *Column;
for(int i=0;i<100;i++)
{
Column = DBGrid1->Columns->Add();
Column->FieldName =FName; //绑定字段名
Column->Title->Caption = FCaption; //显示列标题
Column->Width = 60;
}