收录日期:2018/10/23 18:03:07 时间:2016/05/20 18:27:24 标签:基础类
动态创建控件时的问题. 
开始运行没有问题,但在程序里多取几次n的值就会出错,请问这是怎么回事? 
如何解决???? 
int n=ADOQuery2->FieldCount; 
for(int i=0;i<11;i++) 

if(TEdit2[i]!=NULL) 

TEdit2[n]->Free(); 
DLabel[n]->Free(); 


for(int i=0;i<n;i++) 

TEdit2[i]=new TEdit(this); 
DLabel[i]=new TLabel(this); 
}
看不出什么意思?i,n,11
int n=ADOQuery2->FieldCount; 
for(int i=0;i<11;i++)  //11???

if(TEdit2[i]!=NULL)  //i???

TEdit2[n]->Free(); //n???
DLabel[n]->Free(); //n???



for(int i=0;i<n;i++) 

TEdit2[i]=new TEdit(this); 
DLabel[i]=new TLabel(this); 
}

你没有给出具体的edit和label new时候的代码,我怀疑你的TEdit[n]虽然不等于空,但并不等于DLabel[n]也不等于空啊!还有,你不要用递增来遍历,尝试一下用递减
你说话顺序太乱,能不能说的具体一些?例如:TEdit2和DLabel两个组什么时候建立,什么时候删除?
edit和lable是同时创建,也同时删除,窗体show的时候创建,但每次创建之前把原来创建的删除
n是数据表的字段数,总是n<11,循环变量,创建和删除的代码都在上面了
对不起,开始代码写错了点,现更正如下
int n=ADOQuery2->FieldCount; 
for(int i=0;i<11;i++) //i是循环变量, 

if(TEdit2[i]!=NULL)  

TEdit2[i]->Free(); //在这里删除
DLabel[i]->Free(); 



for(int i=0;i<n;i++) //n总是小于11

TEdit2[i]=new TEdit(this); //在这里创建
DLabel[i]=new TLabel(this); 
}
int n=ADOQuery2->FieldCount; 
for(int i=0;i<n;i++)  //11???

  if(TEdit2[i]!=NULL)  //i???
  { 
    delete TEdit2[i];
    TEdit2[i]=NULL;

  } 
  if(DLabel[i]!=NULL)  //i???
  { 
    delete DLabel[i];
    DLabel[i]=NULL;

  } 

for(int i=0;i<n;i++) 

  TEdit2[i]=new TEdit(this); 
  DLabel[i]=new TLabel(this); 
}
用了zjqyb() 的方法后,问题好像解决了,至少现在我切换了好几次都没出现问题.
但zjqyb()你能告诉我为什么吗?
你不应该use
  TEdit2[i]->Free();
  DLabel[i]->Free(); 
去析构
何况析构后TEdit2[i]也不可能为NULL
必须自己Tedit2[i]=NULL


delphi中use :FreeAndNil(TEdit2[i])
多谢

如何用VB实现? 紧急:我电脑里的软驱总是会莫名其妙地读写,请问是何原因? jsp 中的计算问题 round asp.net.Web应用程序怎么生成setup.exe安装程序呢?在线等!!! 我要listview和treeview相结合使用的例子(最好有注释) 见义勇为,好难为!(zt) ISC 相关, 不懂 是什么东西, 请教 “uo”和“继承”的区别 tx_cq拿分 如何在窗体中加载UO tx_cq拿分 如何用得到键盘的反馈? tx_cq拿分 急问一题异常简单的ASP问题?(在线等) 关于IP地址的问题! 我现在看了一些PB书,但还是不会编程,怎么办? 长沙TOFEL考试 (搞笑之极) (zt) 女士优先! 如何调用标准编辑器 简单问题 在线等! 我中了qq3344的病毒,怎么修复IE? 求教!!! visual c++6.0下能运行C语言程序吗? rs的getrows怎么用呀 请问怎样用C#写个读取未知数据库里面的表名? 我想把“3HS431GT”这串字符串经过变化变成数字格式的怎么弄呀? 我用HOOK截获过鼠标键盘消息!如何用HOOK截获游戏上的文字呀!!??? JDK Linux 安装 可以教教我如何写一个网卡驱动程序吗[在线等候] C#和XML交互中处理text字段回车的问题