【发布时间】:2020-02-27 16:19:50
【问题描述】:
所以我对 C++ Builder 有这个问题。我有一个包含两个简单表格的项目,仅此而已。
这导致生成以下代码:
#include <vcl.h>
#pragma hdrstop
#include <tchar.h>
//---------------------------------------------------------------------------
USEFORM("testUnit1.cpp", Form1);
USEFORM("bluewin.cpp", Form2);
//---------------------------------------------------------------------------
int WINAPI _tWinMain(HINSTANCE, HINSTANCE, LPTSTR, int)
{
try
{
Application->Initialize();
Application->MainFormOnTaskBar = true;
Application->CreateForm(__classid(TForm1), &Form1);
Application->CreateForm(__classid(TForm2), &Form2);
Application->Run();
}
catch (Exception &exception)
{
Application->ShowException(&exception);
}
catch (...)
{
try
{
throw Exception("");
}
catch (Exception &exception)
{
Application->ShowException(&exception);
}
}
return 0;
}
据我所知,第一个创建的表单 (Form1) 被指定为 MainForm 并在执行时显示。这可行,并且只显示 Form1。
现在我想显示第二个表单 (Form2),并且只有这个。我读到颠倒两行:
Application->CreateForm(__classid(TForm1), &Form1);
Application->CreateForm(__classid(TForm2), &Form2);
获得
Application->CreateForm(__classid(TForm2), &Form2);
Application->CreateForm(__classid(TForm1), &Form1);
应该可以解决问题,但事实并非如此。实际上两种形式都会显示。我尝试通过转到 Project > Options > Forms 将 MainForm 设置为 Form2,但我得到了相同的结果。
知道为什么会出现这种行为吗?
【问题讨论】:
标签: c++ c++builder