我在Form1中用一个按钮show一个Form2,在Form2中有一个DriveComboBox1控件,当对DriveComboBox1做过操作后!在form1中关闭Form2,就会出现问题(例如:死机)!请问如何解决?
解决方案 »
- 调用的问题
- 在VC中调用Delphi制作的ActiveForm OCX时,其中的OnDestroy事件不会触发?谢谢
- IdHTTP转向后的地址问题~~在线等!
- TField的CustomConstraint怎么用
- ExpressPrinting System和ExpressQuantumGrid 求页记录数
- 请问用ADOQuery做的ActiveX控件如何释放连接
- 各路高手,快来淘金(数据库问题)..........
- 在线等待,菜鸟问题。
- 请大虾指点DELPHI的三层构架客户端和应用服务器两个COM通讯的原理?
- 找寻关于制作邮件服务器的热心伙伴
- 被一个简单问题卡住了,关于checklistbox控件的。
- :安装组件的时候在这位置报错误错误提示:
implementation
uses unit2;
{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
var form2:tform2;
begin
form2:=tform2.Create(application);
form2.Show;
form2.ComboBox1.Items.add('asldfj');
form2.ComboBox1.Items.Add('really????');
//在这边添加form2.ComboBox1.Items.Add('really????');不会出错
end;procedure TForm1.Button2Click(Sender: TObject);
begin
form2.ComboBox1.Items.Add('really????');//这一句绝对产生一个Exception
//在这边添加就会出错。。
//怪了怪了
end;
神!!!!
老兄你先别说怪
看看你的代码
你在button1的click事件中定义的局部变量form2
你到button2的click事件中调用不出错等什么呢!!!!
到是 没有出现你说的那样的错
到是 在第二个事件中 我加不进新的元素(我给你form2.ComboBox1.Items.Add('????');//这一句改了)
到是没 有你说的那样的错
我知道我的问题所在了。。
是这一句。。
var form2:tform2;
这一句在内存中形成了两个对象(加上CREATE的那一个!)
结果DELPHI是告诉我地址是只读的。。
所以。。和上面的人所说的一点关系都没有。。
至于我为什么要这么做;是因为我想试一下怎么关闭一个现有的窗口,
就这么简单。。和实现的内容无关。。我只想知道细节而已
谢谢各们的喷场!!!THANKS
还有楼主。。把那句除掉就可以实现你的操做了。。implemetation
uses unit2;procedure tform1.showclick(sender:tobject);
//var form2:tform2; //千万不要加这句。我想楼主就是加了这一句吧。。
//如果在VC里面就没有这种情况。。它不允许创建两个同名的实例。
begin
form2:=tform2.create(application);
//动态创建
form2.show;
end;procedure tform1.closeclick(sender:tobject);
begin
postmessage(form2.handle,wm_destroy,0,0);
//播一条消息给form2,可以是wm_close
end;
原来DriveComboBox1做过操作后程序原来的隐藏目录变量会改变!
谢谢大家!散分!散分!