出错:动态创建窗体 问题 ????(100)

  • 主题发起人 主题发起人 kuer6983
  • 开始时间 开始时间
K

kuer6983

Unregistered / Unconfirmed
GUEST, unregistred user!
主程序有定时器,每10秒触发一次procedure TFormMain.RxTimer1Timer(Sender: TObject);begin //if Assigned(Form1) then //即使Form1打开状态,Form1也一直等于nil if Assigned(Application.FindComponent('Form1')) then Form1.MemoStu.Lines.Add(FormatDateTime('hh:mm:ss ', now));end;主窗体中有一个按钮,点击显示Form1procedure TForm2000.Button1Click(Sender: TObject);begin with TForm1.Create(Application) do begin formStyle := fsStayOnTop
Show
//模式窗体不行,后改成非模式的,还是出错 //try //ShowModal
//finally // Free
//end
end;end;Form1关闭做了处理procedure TForm1.FormClose(Sender: TObject
var Action: TCloseAction);begin Action := caFree;end;procedure TForm1.FormDestroy(Sender: TObject);begin Form1.Free
Form1 := nil;end;这样之后,运行程序,如果Form1没打开的时候运行正常,但是如果在Form1打开的情况运行到if Assigned(Application.FindComponent('Form1')) then这句就出错,提示access vio..内存访问错误到底是什么问题呐, 运行环境d5 + windows xp
 
这个错误的原因是访问了已经释放了的对象~~你确定form1没有被释放?
 
Form1 := TForm1.Create(self);
 
刚刚调了下, if Assigned(Application.FindComponent('Form1')) then ShowMessage('exist');这样是可以运行的,那么就是下面那句的问题, if Assigned(Application.FindComponent('Form1')) then Form1.MemoStu.Lines.Add(FormatDateTime('hh:mm:ss ', now));----------------------------------------------------------------------Form1.MemoStu.Lines.Add(FormatDateTime('hh:mm:ss ', now));这句又为什么会出错呢?不能理解啊改成TMemo(FormReVisit.FindComponent('MemoStu')).Lines.Add('eixst')也不行,找不到这个控件?
 
自己解决了.换了个控件,OK了,控件属性设置问题....送分
 
多人接受答案了。
 

Similar threads

I
回复
0
查看
698
import
I
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
638
import
I
后退
顶部