主窗口和次窗口的问题....
本人通过在工程里设置,使主窗口在运行前先启动次窗口,然后密码验证,输入正确后,主窗口无法加载,不知问题出现在哪里,请大家帮助看看,十分感谢!!
部分程序代码如下:
//此为工程文件
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




