高手进来看看,程序报错了! 我的程序里一个单元文件里访问主窗体里的控件(无论哪个控件)的属性,都会报EAccessViolation错误,如:str:=mainfrom.label1.caption请问这是什么原因,这要怎么解决?我的窗体及其他控件都不是动态创建的。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 搜一下有没有Mainfrom:=nil之类似的代码? 能编译吗? 单元文件中有没有USES 主窗体单元? 还有主窗体是不是给释放了如象如下的代码MainFrom.free;MainFrom:=nil; 可能你的MainFrom在使用這個str:=mainfrom.label1.caption前已經被釋放了? 上面说的情况都没有,我的程序只有一个主窗体,因为程序调用的函数太多,就把这些函数放到另外一个unit里面了,都没有出现释放资源的情况。现在就出现这个问题了。很郁闷啊! 要么就是你的另一个单元文件中将 主窗口释放了!在另一个单元文件中找找 MainFrom.free;MainFrom:=nil; 你的函数调用是不是在 窗体 creat函数中进行的 如果是换到show函数里面 代码太长了,也涉及到公司里的一些东西,贴出来大家也看不明白的。我并没有释放什么东西。就只有一个函数里创建了一个TStringList,也没调用,即使屏蔽掉这段代码也出错。函数的调用都不是在窗体创建的时候。所以我搞不懂为什么了。 有没有出错前的版本?如果有的话,比较两个版本,找出修改过的部分,问题很可能出在修改过的部分里面。把整个项目保存一个副本,然后试编译运行,当然你应该仍然看到那些错误,然后你就想办法去掉一些代码,如果你的程序的模块化工作做得还不错,这一点应该可以做到,于是你的程序就瘦了一些,看看它能不能运行,如果不能,再把瘦一些的项目保存一个副本,再让它瘦一些,再试。每次去掉的都应该是你怀疑最有可能出问题的代码。你觉得谁最可疑?就先把它干掉。以上方法剽窃自《程序设计实践》,可以的话,把这本书找来,看看第5章里面有没有能够用到的方法。因为具体代码不方便公开,所以请高手直接指出错误地点是不可能了,让大家(CSDN里面的,办公室里面的,有QQ的同行)尽量多出主意吧,说不定哪一个办法就管用了。 看看被调用窗体的单元文件uses进去没有,如果已经uses进去的话,看看哪里用了form1.free,form1:=nil; 上述的两种情况都会EAccessViolation的报错。 对了,我用了skinEngine皮肤控件,会不会是这个原因呢? 哈哈,skinEngine很容易出现这个问题的。 Delphi菜鸟求教TDBCHART控件怎么使用 sql变量问题 请问TreeView中如何控制PopupMenu,使其只有在选择了树的结点后点右键才出现? 如何调试Delphi的源码? 在Reportbuilder中,主从表的问题? 一些简单的问题 菜单状态问题?? 请问中国移动的“1861”谁知道怎样实现的,pc+modem能否实现。 哪位大虾帮我看一下,我得到的这一段抓图程序。 为什么sql语句不能正确执行? 谁能帮忙告诉我李维 编写的DELPHI 的书籍在什么地方下载 fastreport中的系统变量column #总是为1?
MainFrom.free;
MainFrom:=nil;
在另一个单元文件中找找 MainFrom.free;
MainFrom:=nil;
如果是换到show函数里面
如果已经uses进去的话,看看哪里用了form1.free,form1:=nil;