我创建了3个窗体,一个是主窗体,其他2个是副窗体(不是MDI)。先前可以通过主窗体的2个按钮和菜单能调出这2个窗体,可是现在程序一运行,这2个副窗体就自己显示了,我怎么才能不要他在主窗体创建了时候显示(原来刚作完的时候不是这样的,那时候正常显示)?
解决方案 »
- delphi如何接收DLL传来的NULL值?
- 如何自动调用播放器播放文件?(一定要帮忙啊!!!)
- Windows MediaPlayer的操作(注意:不是delphi自带的那个)
- 请问delphi如何打开指定文件?
- 为什么 我自己发表的帖子不能删除
- 请问一个登录窗口的代码如何写?(急急急)
- 我执行插入语句,提示adoquery:commandtext dose not return a result set,怎么回事?确定后插入成功
- writeln 打印问题,急!!
- 请问如何在一个过程或是事件过程中调用另一个事件过程???
- 在程序中如何关闭NMStrmServ1控件的端口??
- 这样的C++声明,能否在OO PASCAL中实现?
- 为什么总说我的数据库在使用?
那你就在两个负窗体创建完毕后就把它
Hide掉
Form2.Hide;
..要显示的时候再显示出来!(动态创建窗体也可以,释放完全后就肯定不会出来,你的问题可能是窗体创建顺序的问题)
但是我的其他窗体通过按钮和菜单就调不出来了。
如果你的是使用的默认属性的话,可以直接在窗口的属性栏目中把visable(好像是这样写的,呵呵)设置为false。显示的时候再设置为ture。
如果你想临时创建,并且在使用后从内存中清除的话,可以这样。
按ctrl+f12显示工程主文件,你可以看到你创建的所有窗口都在里面,例如
application.createform(form1,tform1);
这样的语句。找到你需要临时创建的窗口的那一行然后干掉它,再在你需要显示的时候,如一个按钮动作中,这样写:
var form:tform1;
try
begin
form=:application.createform(form1,tform1);
form.showmodel; //模态窗口,表示必须返回主窗口才能接受鼠标,键盘消息
end
finally
form.free
end;
这样的好处是只有在你需要的时候创建,不需要的时候不占用太多内存。但是就是比较麻烦,还有就是你当然得在这个单元中引用form1单元了。