关于模式窗体的问题?(50分)

  • 主题发起人 主题发起人 haoxiangxue
  • 开始时间 开始时间
H

haoxiangxue

Unregistered / Unconfirmed
GUEST, unregistred user!
请问各位富翁怎么把我设计的窗体转化为模式窗体,
var
zq1: Tzq;
begin
zq1 := Tzq.Create(self);
zq1.showmodal;
zq1.free;
end;
可以这么用的?
 
Tzq是窗体?可以。
 
to BlackDragon
zq是我设计的普通窗体
 
procedure TForm1.Button1Click(Sender: TObject);
var
zq1: Tform;
begin
zq1 := Tform.Create(self);
zq1.showmodal;
zq1.free;
end;

no problem~
 
但zq不是模式窗体?
 
你可以关闭zq,显示zq1
 
var
zq1: TForm;
begin
if Assigend(zq1) then
zq1 := TForm.Create(self);
zq1.ShowModle;
end;
 
模式与非模式不是在窗体设计时定下的,而是在显示的时候决定的,只要是用ShowModal显示
的就是模式窗体,用Show显示的就是非模式窗体。
 
但我用showmodal显示时,出现这样的错误
project project2.exe raised exception class Einvalid opertion with message
'cannot make a visible window modal' press stoped
use step or run to continue
为什么?该怎么做?
 
我测试了你的那段代码,没有问题,是不是你在TZQ的OnCreate或是OnShow之类的事件里
有特殊代码?
 
老兄,在菜单Project->options..弹出的对话框中,有Forms一栏,
将zq1由auto-create forms转到Avalible forms中,再运行你上面的代码就可以了。
不要告诉我,zq1是你的MainForm哟,哈哈.
 
to vcok:没必要。
 
to vcok
还是不行啊!
to 教父
TZQ的OnCreate或是OnShow之类的事件为空,还是不行啊!
 
zq1.showmodal前面加一行
zq1.hide;就行了
 
zq1.visible:=false;//或者在属性窗口中设置(忘了)
zq1.showmodal;
 
to menxin,nulk:两位的行为好古怪哦,呵呵。
to haoxiangxue:你的那段代码绝对不会有问题,可能是其它方面的问题,或者你试试
把Create(Self)改为Create(nil)再试试。
 
这有什么奇怪,他的错误提示是'cannot make a visible window modal',让他先show有什么不对吗?
 
你是不是试过MDIForm
第一,你现在不是MDI方式,然后把Tzq的Visible属性在设计期设为false就行了
 
Kang说得对,确实是MDI的问题,MDI的子窗体只须Create就行了,不用ShowModal;
 
to:教父
没什么古怪的啊,帖子post之前我可没抄他的,只是英雄所见略同
 

Similar threads

S
回复
0
查看
918
SUNSTONE的Delphi笔记
S
S
回复
0
查看
898
SUNSTONE的Delphi笔记
S
D
回复
0
查看
855
DelphiTeacher的专栏
D
D
回复
0
查看
865
DelphiTeacher的专栏
D
后退
顶部