我正在尝试使用Borland C ++ Builder 6创建一个简单的自定义控件。在这种情况下,我正在尝试使用单个TTabSheet创建一个TPageControl。我无法确定初始化这些子控件的正确位置。目前我正在初始化构造函数中的所有内容。一切都编译得很好,但是当我试图将控件放到一个表单上时,Borland IDE给了我一个错误“Control''没有父窗口”或类似的东西。我发现造成这种情况的那一行是TTabSheet的PageControl属性的设置。
我的控制代码如下:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "TestControl.h"
#pragma package(smart_init)
//---------------------------------------------------------------------------
// ValidCtrCheck is used to assure that the components created do not have
// any pure virtual functions.
//
static inline void ValidCtrCheck(TTestControl *)
{
new TTestControl(NULL);
}
//---------------------------------------------------------------------------
__fastcall TTestControl::TTestControl(TComponent* Owner)
: TCustomControl(Owner)
{
pageControl = new TPageControl(this);
pageControl->Parent = this;
tabSheet = new TTabSheet(pageControl);
tabSheet->Parent = pageControl;
tabSheet->Caption = "Page 1";
tabSheet->PageControl = pageControl;
}
//---------------------------------------------------------------------------
__fastcall TTestControl::~TTestControl()
{
pageControl->Free();
}
//---------------------------------------------------------------------------
namespace Testcontrol
{
void __fastcall PACKAGE Register()
{
TComponentClass classes[1] = {__classid(TTestControl)};
RegisterComponents("Test", classes, 0);
}
}
//---------------------------------------------------------------------------
任何帮助都会非常感激 - 我发现由于这种特殊技术的年龄,我没有太多运气找到资源。