程序代码:
  If Not Assigned(qryForm) Then
    qryForm := TqryForm.Create(Self);  If qryForm.ShowModal = mrOK then
  ........................
其中qryForm 是另外定义的一个窗体,在运行时创建,
下面是运行时的异常提示:
---------------------------
Debugger Exception Notification
---------------------------
Project ReadSMS.exe raised exception class EAccessViolation with message 'Access violation at address 77F9ADCA in module 'ntdll.dll'. Write of address 00405205'. Process stopped. Use Step or Run to continue.
---------------------------
OK   Help   
---------------------------
记得以前在D6中这样做是没有问题的,为什么到了D7就不行了呢?
或者是由于我使用D版的缘故?

解决方案 »

  1.   

    真是失望,csdn到底有几个是真正的高手啊,难道就只会要代码!
      

  2.   

    If Not Assigned(qryForm) Then
        qryForm := TqryForm.Create(Self);  If qryForm.ShowModal = mrOK then
      
    不知你后面怎么释放的窗体,释放后要确保qryForm:=nil;
    否则上述代第一次运行正常,当窗体释放后,再运行可能就不正常了
      

  3.   

    估计是qryForm被创建后,使用Free or Release释放,但是没有把对象(qryForm)=nil
    这种情况虽然qryForm对象的确被释放了,但是qryForm <> nil,你用Assigned(qryForm)来判断是得不到正确得答案的。
      

  4.   

    可以使用FreeAndNil(yourform)来释放你的窗体
      

  5.   

    delphi7里这段代码没问题,释放窗体用close也没报错,检查别的代码去吧!!
      

  6.   

    多谢dvmail(woo) ,果然问题不在这里,是由于我在创建的那个窗体的onshow中写的代码有问题!