有关窗体显示的问题,请高手帮忙解决啊见人有分!!!!!
我有form1和form2两个窗体,我想在form1中调用form2窗体,我采用的是动态调用的,代码如下:
procedure TForm1.btn1Click(Sender: TObject);
var myform:TForm2;
begin
myform:=TForm2.create(nil);
myform.Visible:=true;
MyForm.showmodal;
end;
当form2出来之后四秒钟后自动关闭,代码如下:
procedure TForm2.Timer1Timer(Sender: TObject);
begin
timer1.Interval:=4000;
form2.Close;
end;
现在问题是为什么我创建的myform不能showmodal啊?我想要form2弹出来再form1的上面,即form2覆盖form1,请问各位高手该怎么实现啊??
问题点数:0、回复次数:30Top
1 楼mccxj(老鼠不逛街)回复于 2005-06-03 13:47:30 得分 0
procedure TForm1.FormActivate(Sender: TObject);
begin
Form2.ShowModal;
end;Top
2 楼mccxj(老鼠不逛街)回复于 2005-06-03 13:49:17 得分 0
procedure TForm2.Timer1Timer(Sender: TObject);
begin
//这里可以对程序进行初始化;
Label1.Caption := '欢迎进入本系统......';
close;
end;
当也可以对timer进行初始化。。Top
3 楼ancoli123(wumaojieancoli)回复于 2005-06-03 13:51:38 得分 0
我这个创建myform窗体事件只能在写在某个函数里面啊Top
4 楼postfxj(探索者)回复于 2005-06-03 13:52:06 得分 0
看看你的form1和form2各自的formstyle吧。
你不能把form1設成總是在任何窗體前面喲。
在默認情況下(在不修改任何屬性),在form1上show出form2,form2一定是在form1前面的呀。
並且你用的是showmadal.Top
5 楼ancoli123(wumaojieancoli)回复于 2005-06-03 13:53:31 得分 0
高手关键是我的myform不能够showmodal啊Top
6 楼heluqing(鉴之小河〖劳累求充实〗)(vcl .net)回复于 2005-06-03 13:54:05 得分 0
procedure TForm1.btn1Click(Sender: TObject);
var myform:TForm2;
begin
myform:=TForm2.create(nil);
//myform.Visible:=true;//去掉这一句,这句多余的,而且会报错
MyForm.showmodal;
end;
Error:can`t make a visible windows modal
Top
7 楼ancoli123(wumaojieancoli)回复于 2005-06-03 13:56:52 得分 0
我试过啊还是不能showmodal啊Top
8 楼meiqingsong(阿飛)回复于 2005-06-03 13:59:08 得分 0
这样就可以了
var
MyForm: TForm2;
begin
MyForm := TForm2.Create(nil);
MyForm.ShowModal();
end;
Top
9 楼ancoli123(wumaojieancoli)回复于 2005-06-03 13:59:52 得分 0
提示'cannot make a visible window modal'错误信息啊Top
10 楼ancoli123(wumaojieancoli)回复于 2005-06-03 14:01:38 得分 0
高手还是不行啊还是提示'cannot make a visible window modal'错误信息啊
Top
11 楼ancoli123(wumaojieancoli)回复于 2005-06-03 14:04:03 得分 0
楼上的这位高手还是不行啊提示'cannot make a visible window modal'错误信息啊
Top
12 楼lcg412(他媽的狗日本,操狗日本祖宗(至死不買日貨))回复于 2005-06-03 14:04:25 得分 0
showmodal肯定是可以的
但是不能覆蓋form1
如果想在form1中包容form2
應在你想要在form1中出現form2的位置放一個容器panel
然後在過程中加多一句話
procedure TForm1.btn1Click(Sender: TObject);
var myform:TForm2;
begin
myform:=TForm2.create(nil);
myform.parent:=form1.panel1;
myform.align:=alclient;
myform.borderstyle:=bsnone;
MyForm.show;
end;
Top
13 楼heluqing(鉴之小河〖劳累求充实〗)(vcl .net)回复于 2005-06-03 14:04:34 得分 0
procedure TForm1.btn1Click(Sender: TObject);
var myform:TForm2;
begin
myform:=TForm2.create(nil);
//myform.Visible:=true;//去掉这一句,这句多余的,而且会报错
MyForm.showmodal;
end;
Error:can`t make a visible windows modal
同时
procedure TForm2.Timer1Timer(Sender: TObject);
begin
timer1.Interval:=4000;
self.Close;
end;
/////////////////////////////////
如果还有上面的错误,就要贴其它地方的代码了...Top
14 楼lcg412(他媽的狗日本,操狗日本祖宗(至死不買日貨))回复于 2005-06-03 14:04:53 得分 0
showmodal肯定是可以的
但是不能覆蓋form1
如果想在form1中包容form2
應在你想要在form1中出現form2的位置放一個容器panel
然後在過程中加多一句話
procedure TForm1.btn1Click(Sender: TObject);
var myform:TForm2;
begin
myform:=TForm2.create(nil);
myform.parent:=form1.panel1;
myform.align:=alclient;
myform.borderstyle:=bsnone;
MyForm.show;
end;
Top
15 楼ancoli123(wumaojieancoli)回复于 2005-06-03 14:06:10 得分 0
不行啊还是提示'cannot make a visible window modal'错误信息啊
Top
16 楼meiqingsong(阿飛)回复于 2005-06-03 14:06:55 得分 0
楼主,你在什么地方报的错?Top
17 楼ancoli123(wumaojieancoli)回复于 2005-06-03 14:08:54 得分 0
在myform.showmodal这里啊Top
18 楼ancoli123(wumaojieancoli)回复于 2005-06-03 14:11:25 得分 0
就是不能showmodal啊我想在form1中调用form2啊并且form2弹出来后要遮住form1啊并且form2在显示几秒钟后自动消失啊Top
19 楼jzkhh(花花)回复于 2005-06-03 14:11:36 得分 0
在myform里的代码有错
按F7跟进去看Top
20 楼heluqing(鉴之小河〖劳累求充实〗)(vcl .net)回复于 2005-06-03 14:11:38 得分 0
其它地方的代码出错了,贴出错的位置的代码...Top
21 楼xixuemao(钱不是问题,问题是没钱)回复于 2005-06-03 14:12:30 得分 0
你还是重新建一个工程试试吧,试完就知道到底是哪里错了Top
22 楼heluqing(鉴之小河〖劳累求充实〗)(vcl .net)回复于 2005-06-03 14:12:52 得分 0
晕死~~~这么简单的地方也会出错....Top
23 楼ancoli123(wumaojieancoli)回复于 2005-06-03 14:15:00 得分 0
procedure TForm1.writestatus(rst:rstatusname; userid: string; jobno: string);
var
sqlstr: string;
stocknameid: string;
MyForm : TForm2;
begin
if not checkstop(jobno) and not checkdelete(jobno) then
begin
jobno_updatecpostion(jobno,rst.statusid); //geng xin dang qian ji lu
if rst.outstockflag then
begin
jobno_updatefinish(jobno);
end;
if rst.stockflag then
begin
update_stockflag(jobno); //geng xin chu ku
end;
if (packflag='1') and (packid=rst.statusid) then //ボΤゴ审ゴ
begin
print_barcode(jobno);
lst1.Items.Text:=displaystring+#13#10+lst1.Items.Text;
if checkfirst(jobno,rst.statusid) then
begin
writestandard(rst.statusid,userid,jobno);
end;
end
else
writestandard(rst.statusid,userid,jobno);
end
else begin
myform:=TForm2.create(nil);
MyForm.showmodal;
end;
end;
各位高手代码如上啊
Top
24 楼heluqing(鉴之小河〖劳累求充实〗)(vcl .net)回复于 2005-06-03 14:23:07 得分 0
很多看不懂的,能看懂的部分感觉没什么问题,不知道搂住在其它地方还有没有用到myForm那?Top
25 楼heluqing(鉴之小河〖劳累求充实〗)(vcl .net)回复于 2005-06-03 14:27:06 得分 0
以前遇到这种错误是因为有的地方我用了myForm.show有的地方用了myForm.showmodal造成的,不过你这里动态创建的窗口应该不会有这种情况才对呀...Top
26 楼jzkhh(花花)回复于 2005-06-03 14:30:04 得分 0
类TForm2是怎么定义的?Top
27 楼ancoli123(wumaojieancoli)回复于 2005-06-03 14:40:55 得分 0
是啊我没有别的地方用到myform啊
show就可以啊但是showmodal就不行啊Top
28 楼xixuemao(钱不是问题,问题是没钱)回复于 2005-06-06 11:56:46 得分 0
是不是你的form1也是showmodal啊????Top
29 楼xixuemao(钱不是问题,问题是没钱)回复于 2005-06-06 11:58:42 得分 0
一个程序里只能有一个窗口是showmodal的,如果你的From1也是showmodal的,那肯定要报错的!
如果没有,那也没办法了,实在想不出来你这个还能哪里出问题了。呵呵Top
30 楼icarian_guy(爱生活,爱编程!)回复于 2005-06-06 13:32:44 得分 0
顶Top




