回 帖 发 新 帖 刷新版面

主题:窗体问题!?

现在有2个窗体,想让Form1为运行时的主窗体,而Form2为非主窗体。程序运行时,先只显示Form2这个非主窗体,做一些必要的选择等。完成后,关闭Form2同时显Form1。该怎么设置??请教高手!!

(我试过,把Form设为MainForm,把Form2设为Auto-Form,但这样的话程序一运行就只先显示Form1了。或者把两个Form都设为MainForm,Form2在上面,但这样的话,一运行,是先显示Form2,完成后可以显示Form1,此时已不需要Form2了,把Form2一关掉,程序就OVER了。怎样设才能达到我想的效果呢?)

回复列表 (共4个回复)

沙发

把Form设为MainForm,试试不把Form2设为Auto-Form,别动它!这是第一步!
第二步,是代码的问题我估计你写混拉!才会出现你那样的问题

板凳

我做过这样的,没一点错误啊!

3 楼

查看DELPHI的联机帮助,主题是TFORM,里面有教你怎么去实现这个的方法!!

4 楼

//将Form2取消Auto-Form!
//打开项目工程文件(点击Project->View Source),并做如下修改:

//--------------------------------------------------------------------------
#include "Unit2.h"   //先要将TForm2的定义包含进来(假设Form2头文件是Unit2.h)

#include <vcl.h>
#pragma hdrstop
//--------------------------------------------------------------------------
USEFORM("Unit1.cpp", Form1);
USEFORM("Unit2.cpp", Form2);
//--------------------------------------------------------------------------
WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
        try
        {
                 Application->Initialize();

                //-----增加的代码:-------------------------
                 Form2 = new TForm2(Application);
                 Form2->ShowModal();
                 delete Form2;
                //-----------------------------------------

                 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;
}
//--------------------------------------------------------------------------

我来回复

您尚未登录,请登录后再回复。点此登录或注册