topendialog的问题,无缘无故的出错,退出(100)

  • 主题发起人 主题发起人 xwyliu
  • 开始时间 开始时间
X

xwyliu

Unregistered / Unconfirmed
GUEST, unregistred user!
编了一段程序,老是无故出错,没理由的退出,access violation at .....read of address....的错误,找来找去,就是这一段的问题。可是实在看不出问题在哪里.无论是用vcl控件,还是手工创建,用打开文件对话框就有问题。你们有碰到吗?高手分析一下。在一个按钮里面用这段代码,然后打开几个文件,就出错了,第几个出错也不定,真是郁闷 dlg := TOpenDialog.Create(Self); try dlg.Filter:='QQ号码文件(*.txt)|*.txt'; if not dlg.Execute then begin //dlg.Free; Exit; end; sStr.Clear; sStr.LoadFromFile(dlg.FileName); finally dlg.Free; end;
 
测试了,多次没问题,你看一下 反汇编!~
 
sStr.LoadFromFile(dlg.FileName); sStr是什么组件?
 
不会是 sStr,没释放吧!
 
不要告诉我你用了低版本的VCLSkin
 
用了Exit也没有,仍然会执行Finally部分的代码的,导致释放2次。
 
dlg := TOpenDialog.Create(Self); try dlg.Filter:='QQ号码文件(*.txt)|*.txt'; if dlg.Execute then begin sStr.Clear; sStr.LoadFromFile(dlg.FileName); end; finally dlg.Free; end;//如果 你的sStr 在释放了后,再调入文本就会出错// sStr不清楚你是怎么建立的,还是释放的procedure TForm1.Button1Click(Sender: TObject);var dlg: TOpenDialog; sStr: TStrings;begindlg := TOpenDialog.Create(Self);sStr := TStringList.Create; try dlg.Filter:='QQ号码文件(*.txt)|*.txt'; if dlg.Execute then begin sStr.Clear; sStr.LoadFromFile(dlg.FileName); end; finally dlg.Free; end; sStr.Free;end;
 
vckskin260有问题吗?
 
lqcros,的也不行,我sStr是窗体的变量,create创建,destory释放,没问题的。开始我就是用lqcros,的出问题,才改成这个。
 
先把vclskin去掉试试再说啊。
 
去掉了没有错了,可是装什么版本是可用的呢?
 
这个是VclSkin低版本的BUG。
 
给了几次分了
 
后退
顶部