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

主窗口和次窗口的问题....

楼主talkingmute(CS-{Z})2005-03-03 23:31:14 在 C++ Builder / 基础类 提问

本人通过在工程里设置,使主窗口在运行前先启动次窗口,然后密码验证,输入正确后,主窗口无法加载,不知问题出现在哪里,请大家帮助看看,十分感谢!!  
   
  部分程序代码如下:  
  //此为工程文件  
  WINAPI   WinMain(HINSTANCE,   HINSTANCE,   LPSTR,   int)  
  {  
                  try  
                  {  
                                    Application->Initialize();  
                                    Form2=new   TForm2(Application);//创建登录窗体  
                                    Form2->ShowModal();   //模态显示  
                                    Application->CreateForm(__classid(TForm1),   &Form1);  
                                    Application->Run();  
                  }  
                  catch   (Exception   &exception)  
                  {  
                                    Application->ShowException(&exception);  
                  }  
                  catch   (...)  
                  {  
                                    try  
                                    {  
                                                    throw   Exception("");  
                                    }  
                                    catch   (Exception   &exception)  
                                    {  
                                                    Application->ShowException(&exception);  
                                    }  
                  }  
                  return   0;  
  }  
  ---------------------  
  void   __fastcall   TForm2::BitBtn1Click(TObject   *Sender)  
  {  
  if(Edit1->Text=="123")  
  Close();  
  else  
  {  
  MessageBox(NULL,"密码输入错误!请重新输入!请注意字母大小写!","密码验证",48);  
  Form2->Show();  
  }  
  }  
  问题点数:50、回复次数:14Top

1 楼Maconel(Maconel)回复于 2005-03-03 23:52:56 得分 0

我照你的代码写了下,没有问题。  
  注意在project1.cpp文件中,需要写上  
  #include   "unit2.h"  
  不过我看你多半已经有了。因为如果不写,是编译错误。  
  你所说的无法加载,具体是怎么样的情况呢,出错还是没反应,看看form1启动时的代码有没有问题。Top

2 楼magicsnake(北极狐)回复于 2005-03-04 00:06:59 得分 20

try  
                  {  
                                    Application->Initialize();  
                                    Application->CreateForm(__classid(TForm2),   &Form2);  
                                    Form2->ShowModal();   //模态显示  
                                    int   flag;//   判断是否登录成功的返回值  
                                    flag   =   Form2->flag;  
                                    delete   Form2;  
                                    if(flag   ==   0)  
                                    {  
                                          //   登录失败  
                                          exit(1);  
                                    }  
                                    Application->CreateForm(__classid(TForm1),   &Form1);  
                                    Application->Run();  
                  }  
                  catch   (Exception   &exception)  
                  {  
                                    Application->ShowException(&exception);  
                  }  
  Top

3 楼cczlp(不惑)回复于 2005-03-04 08:05:48 得分 30

try  
                  {  
                                    Application->Initialize();  
                                    Form2=new   TForm2(Application);//创建登录窗体  
                                    if   (Form2->ShowModal()   !=   mrOk)    
                                                    return   0;   //模态显示  
                                    Application->CreateForm(__classid(TForm1),   &Form1);  
                                    Application->Run();  
                  }  
                  catch   (Exception   &exception)  
                  {  
                                    Application->ShowException(&exception);  
                  }  
  Top

4 楼songhtao(三十年孤独)回复于 2005-03-04 09:34:10 得分 0

更改一下顺序,把你的主窗口做次窗口,次窗口做主窗口Top

5 楼talkingmute(CS-{Z})回复于 2005-03-04 10:00:04 得分 0

to:   Maconel(Maconel  
  就是当输入密码正确后,程序退出了,Form1没有显示,Form1代码没问题。  
   
  to:   magicsnake(北极狐  
  flag   =   Form2->flag;//这个没有的啊!  
   
  to:   songhtao(三十年孤独)  
  大哥,请说仔细点,我设置后还是不能实现  
   
  现在新问题出来了,一运行就提示一个错误框:cannot   make   a   visible   window   modal.....  
  请大家帮助!!谢谢了!!  
  Top

6 楼officecn(Hotdog)回复于 2005-03-04 16:11:12 得分 0

如果你将登陆窗体设置为主窗体,  
  那么登陆窗体只能隐藏而不能关闭,否则程序会退出运行状态的。Top

7 楼officecn(Hotdog)回复于 2005-03-04 16:12:06 得分 0

BCB和Delphi中主窗体再运行过程中不能关闭。Top

8 楼magicsnake(北极狐)回复于 2005-03-04 16:31:16 得分 0

flag是我自己设置的标志,根据登录窗体点击确定或者退出按钮设置,和判断Form2->ShowModal()   !=   mrOk的效果一致  
   
  cannot   make   a   visible   window   modal  
   
  设置你的Form2窗口的visible属性为falseTop

9 楼magicsnake(北极狐)回复于 2005-03-04 16:33:21 得分 0

注意工程的cpp文件要包含登录窗体头文件  
  #include   "Unit2.h"  
  flag是我自己设置的标志,根据登录窗体点击确定或者退出按钮设置,和判断Form2->ShowModal()   !=   mrOk的效果一致  
   
  cannot   make   a   visible   window   modal  
   
  设置你的Form2窗口的visible属性为falseTop

10 楼talkingmute(CS-{Z})回复于 2005-03-05 14:12:29 得分 0

to:   magicsnake(北极狐)    
  谢谢你,可是问题依旧,当密码正确后,程序仍然退出了,  
  这里,if(Edit1->Text=="123")  
  Close();//结束的是Form2的程序吧,然后应该是创建Form1的,可是为什么不能创建的???  
  请大家提供其他一些方法!Top

11 楼kyodan(潜水~潜水)回复于 2005-03-05 15:30:11 得分 0

刚让朋友试了一下,BCB6.0/Win2K没问题的啊?你的BCB什么版本?Top

12 楼magicsnake(北极狐)回复于 2005-03-05 22:24:34 得分 0

我可是怎么试都没有问题啊!  
  你先试试不用登录窗体,直接打开主窗体看看能不能够执行下去Top

13 楼talkingmute(CS-{Z})回复于 2005-03-06 09:19:59 得分 0

奇怪了,我刚开始创建Form1后什么控件都没的,然后直接创建Form2,如上边代码所示,可是实现我所说的功能;可是后来当在Form1中加入一些控件或者实现一些事件之后,就无法实现上边所说的功能了,很让我郁闷!不知大家遇到过没???Top

14 楼magicsnake(北极狐)回复于 2005-03-06 13:08:13 得分 0

你是不是又新创建了其他的窗体??  
  新创建窗体后,工程文件cpp的代码会被编辑器再次改变,你要注意调整回来Top

相关问题

  • 一个登录窗口和一个主窗口,先显示登录窗口,再显示主窗口,如何写?
  • ******显示主窗口和登录窗口的问题******
  • 关于主窗口和密码窗口的关系
  • 关于主窗口和登录窗口的问题(在线等)
  • 主窗口和其余窗口的区别?
  • 子窗口第二次创建后,主窗口界面停止刷新
  • 初学者关于主数据窗口和子数据窗口的疑问
  • 怎样实现子窗口和主窗口信息(指针)同步
  • 请问如何一运行程序主窗口和子窗口就最大化?
  • 如何使子窗口菜单不要自动和主窗口菜单合并?

关键词

  • 代码
  • 密码
  • 文件
  • application
  • 窗体
  • 主
  • showmodal
  • showexception
  • 创建
  • createform

得分解答快速导航

  • 帖主:talkingmute
  • magicsnake
  • cczlp

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

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