首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

DBGrid 动态生成列 内存溢出有关问题

2013-03-01 
DBGrid 动态生成列 内存溢出问题窗体上放置文添加任何列的DBGrid组件通过for循环来动态添加列,代码如下TCo

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;
}



未发现溢出现象,
FName
FCaption
是不是可以不要直接用CLASSES.hpp中的私有成员

private:
TComponent* FOwner;
AnsiString FName;
[解决办法]
用得很正常。

热点排行