CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  VCL组件开发及应用

有关窗体显示的问题,请高手帮忙解决啊见人有分!!!!!

楼主ancoli123(wumaojieancoli)2005-06-03 13:42:05 在 Delphi / VCL组件开发及应用 提问

我有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

相关问题

  • 有关窗体拆分后,窗体大小显示问题请教(急)
  • 有关窗体的创建和显示
  • 有关窗体显示的问题
  • 有关子窗体显示的问题
  • 显示窗体
  • 窗体显示?
  • 显示窗体
  • 窗体显示问题。100分敬上..
  • 有关窗体。。。
  • 有关MDI子窗体显示的一问??

关键词

  • 信息
  • myform
  • showmodal
  • 窗体
  • tform
  • 高手
  • btn1click
  • modal
  • tobject
  • form

得分解答快速导航

  • 帖主:ancoli123

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo