TScreen->Forms 显示意外的额外表格
TScreen->Forms Shows Unexpected Extra Forms
我正在使用 C++Builder 10.3 Rio 和 VCL windows 应用程序。我正在使用 TScreen->Forms 获取有关我的程序打开表单的信息。这表明 FormCount 比我预期的要高。我的应用程序有两个打开的窗体(1)主程序窗体和(2)数据输入对话框。当我检查 Screen->FormCount 时,它显示 6 种形式。当我在下面的 for 循环中检查表单名称和标题时,只有我的 2 个表单有名称和标题。其他表单名称和标题为 NULL。我可以使用 dynamic_cast 或表单名称来识别我的表单。其他额外形式是什么?我如何识别其他表格?
UnicodeString MyName, MyCaption;
for(int j=0; j<Screen->FormCount; j++){
MyName = Screen->Forms[j]->Name;
MyCaption = Screen->Forms[j]->Caption;
TMyForm *MyLocal = dynamic_cast<TMyForm *>( Screen->Forms[j] );
}
for(int j=0; j<Screen->CustomFormCount; j++){
MyName = Screen->CustomForms[j]->Name;
MyCaption = Screen->CustomForms[j]->Caption;
}
您可以使用 ClassName
属性 查找更多信息。
但是,如果某些表格很简单 TForm
,或者您不认识这个名字,那么这可能不会显示任何有用信息。要真正找出这些形式是什么,请在 TCustomForm.Create
中设置一个断点,并在每次触发该断点时检查调用堆栈。
我正在使用 C++Builder 10.3 Rio 和 VCL windows 应用程序。我正在使用 TScreen->Forms 获取有关我的程序打开表单的信息。这表明 FormCount 比我预期的要高。我的应用程序有两个打开的窗体(1)主程序窗体和(2)数据输入对话框。当我检查 Screen->FormCount 时,它显示 6 种形式。当我在下面的 for 循环中检查表单名称和标题时,只有我的 2 个表单有名称和标题。其他表单名称和标题为 NULL。我可以使用 dynamic_cast 或表单名称来识别我的表单。其他额外形式是什么?我如何识别其他表格?
UnicodeString MyName, MyCaption;
for(int j=0; j<Screen->FormCount; j++){
MyName = Screen->Forms[j]->Name;
MyCaption = Screen->Forms[j]->Caption;
TMyForm *MyLocal = dynamic_cast<TMyForm *>( Screen->Forms[j] );
}
for(int j=0; j<Screen->CustomFormCount; j++){
MyName = Screen->CustomForms[j]->Name;
MyCaption = Screen->CustomForms[j]->Caption;
}
您可以使用 ClassName
属性 查找更多信息。
但是,如果某些表格很简单 TForm
,或者您不认识这个名字,那么这可能不会显示任何有用信息。要真正找出这些形式是什么,请在 TCustomForm.Create
中设置一个断点,并在每次触发该断点时检查调用堆栈。