我在C ++ Builder中有一个VCL Forms应用程序。我有一个带有四个对接TPageControl
的主表单。该程序是一个图形绘制程序,可以将图像打开为自己的VCL形式,可以将其停靠在TPageControl
上以进行并排查看。停放VCL表单后,用鼠标选择它会使底层主表单成为ActiveForm
。
如何选择停靠的VCL表单并将其设置为ActiveForm
?我需要知道选择了哪种对接VCL形式,以便可以处理正确的图像。
为了进行测试,我使用下面的循环在TListBox
中显示所有VCL表单名称,并在ActiveForm
中显示TEdit
名称。此代码在主窗体上的按钮事件中。我可以选择一个自由浮动的VCL表单并将其设置为ActiveForm
,而不是停靠的VCL表单。
void __fastcall TMainForm1::Button3Click(TObject *Sender)
{
ListBox1->Items->Clear();
Edit1->Text="";
UnicodeString n="";
int C = Screen->FormCount;
for( int i = 0; i < C; ++i )
{
TForm* form = Screen->Forms[i];
n = form->Name;
ListBox1->Items->Add(form->Name); //List all Form Names
if( Screen->ActiveForm == form ){
Edit1->Text = form->Name; //Active Form Name
}
}
}