我们将 C++ Builder 用于其表单保存在数据库中 EXE 外部的应用程序。应用程序代码是 C++
这允许我们在不重新编译的情况下修改表单和表单/操作。这是一个完成加载表单工作的代码片段。
RegisterClass(__classid(TButton));
RegisterClass(__classid(TEdit));
RegisterClass(__classid(TRadioGroup));
RegisterClass(__classid(TGroupBox));
RegisterClass(__classid(TCheckBox));
RegisterClass(__classid(TRadioButton));
RegisterClass(__classid(TTimer));
RegisterClass(__classid(TListBox));
RegisterClass(__classid(TComboBox));
RegisterClass(__classid(TBitBtn));
RegisterClass(__classid(TSpeedButton));
RegisterClass(__classid(TMaskEdit));
RegisterClass(__classid(TProgressBar));
ms = new TMemoryStream;
ms2 = new TMemoryStream;
// Loading Module into Memory Stream
ms->Position = 0;
ms->LoadFromFile(Filename->Text);
ms->Position = 0;
pModule = new TForm(this);
// Reading Module Definition
if( !Inputisbin->Checked )
{
ms2->Position = 0;
ObjectTextToBinary(ms, ms2);
ms2->Position = 0;
ms2->ReadComponent(pModule);
}
else
ms->ReadComponent(pModule);
Log->Lines->Add("Displaying Module");
pModule->Show();
我很想知道是否有任何内置函数可以调用来注册所有引用的类。我想可以自己扫描所有对象的内存流或文件并为每个对象调用RegisterClass,但希望有人知道已经这样做的函数。
因此,并非所有表单都使用所有这些类,因此最好只注册那些实际继承的类。