各个窗体取值的问题?代码如下,各位帮忙看看错在哪吧!很着急(50分)

W

whxxr

Unregistered / Unconfirmed
GUEST, unregistred user!
我新建了三个窗体。FORM1,FORM2,FORM3。FORM2通过FORM1创建。FORM3通过FORM2创建
FORM1。BUTTON1。CLICK
VAR FROM2:TFORM2
BEGIN
 FORM2:=TFROM2。CREATE(SELF);
 FROM2。SHOW;
END

FORM2。BUTTON1。CLICK
VAR FROM3:TFORM3
BEGIN
 FORM3:=TFROM3。CREATE(SELF);
 FROM3。SHOW;
END
在FROM3中,先定DBGRID中一列给予FORM2的EIDT赋值时出错,而给FORM1赋值时则没错误。
from1.edit1.text:=dbgrid1.columns.grid.selectedfield.asstring;
//上述代码可以执行
from2.edit1.text:=dbgrid1.columns.grid.selectedfield.asstring;
//错误如下
Acces violation at address 004f7329 in module 'project1.exe'.read of addres ffffffff
 
你的TForm2所在的Unit一定有个声明是
var
Form2:TForm2;
吧,因为你的
FORM1。BUTTON1。CLICK
VAR FROM2:TFORM2
BEGIN
 FORM2:=TFROM2。CREATE(SELF);
 FROM2。SHOW;
END
里,form2是个局部变量,应该去掉
VAR FROM2:TFORM2
直接用form2:=tfrom2.create(self);
form3同
 
CREATE(application);

从来不用 CREATE(SELF);

 
谢谢YSAI兄,问题解决
 
顶部