繁体   English   中英

在Embarcadero C ++构建器中声明表单:

[英]Declaring Form in Embarcadero C++ builder:

使用Embarcadero XE-5入门时,对象模型让我感到困惑。 我的项目从一开始就涉及Canvas,所以我的世界是画一两行。 设置一个SDI项目,并直接从C ++构建器帮助中添加一个快速调用,但是无法对其进行编译。 在所有示例中都使用了Form1,但是我无法实例化它。 我试图以各种方式声明Form1,但没有成功。

有人可以指出我的错误吗?

// ----------------------------------------------------
#include <vcl.h>
#pragma hdrstop>  
#include <tchar.h>
//-----------------------------------------------------
USEFORM("SDIMAIN.CPP", SDIAppForm);
USEFORM("ABOUT.CPP", AboutBox);
//-----------------------------------------------------
int WINAPI _tWinMain(HINSTANCE, HINSTANCE, LPTSTR, int)
    {
    Application->Initialize();
    Application->CreateForm(__classid(TSDIAppForm), &SDIAppForm);

 // ** Following line gives error: Form1 undefined. ** 
     Application->CreateForm(__classid(TCanvas), &Form1);   
     Application->CreateForm(__classid(TAboutBox), &AboutBox);
     Application->Run();

     return 0;
     }
 //------------------------------------------------------

/*  SDIMAIN - copied from the help screens  */
void __fastcall TForm1::FormPaint(TObject *Sender) 
{
Canvas->MoveTo(0,0);
Canvas->LineTo(ClientWidth, ClientHeight);
Canvas->MoveTo(0, ClientHeight);
Canvas->LineTo(ClientWidth, 0);
}

您不使用TApplication::CreateForm()创建TCanvas对象。 __classid(TCanvas)更改为__classid(TForm1)

// ----------------------------------------------------
#include <vcl.h>
#pragma hdrstop>  
#include <tchar.h>
//-----------------------------------------------------
USEFORM("SDIMAIN.CPP", SDIAppForm);
USEFORM("Unit1.cpp", Form1);
USEFORM("ABOUT.CPP", AboutBox);
//-----------------------------------------------------
int WINAPI _tWinMain(HINSTANCE, HINSTANCE, LPTSTR, int)
{
    Application->Initialize();
    Application->CreateForm(__classid(TSDIAppForm), &SDIAppForm);
    Application->CreateForm(__classid(TForm1), &Form1);   
    Application->CreateForm(__classid(TAboutBox), &AboutBox);
    Application->Run();
    return 0;
}
//------------------------------------------------------

当然,这要求您首先拥有一个TForm1类:

文件>新建> VCL表单

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM