BCB中如何得到当前 Application 中的Form对象指针或Form对象的数量?

nononono 2001-07-24 12:23:55
如题.

这些Form对象建立时的参数是NULL.
这些Form对象分属不同的Form类.
...全文
222 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
nononono 2001-07-27
  • 打赏
  • 举报
回复
看来没有好办法。结帖!
nononono 2001-07-25
  • 打赏
  • 举报
回复
What's RTTI ?
火鸟33 2001-07-25
  • 打赏
  • 举报
回复
使用RTTI
nononono 2001-07-25
  • 打赏
  • 举报
回复
没有更好的答案了?
nononono 2001-07-24
  • 打赏
  • 举报
回复
能找到下面那样建立的Form吗?

TFORM_TEDEF *FORM_TEDEF;
FORM_TEDEF=new TFORM_TEDEF(NULL);
FORM_TEDEF->Show();
xrbeck 2001-07-24
  • 打赏
  • 举报
回复
void __fastcall TForm1::Button1Click(TObject *Sender)
{
TForm *FormTemp;
for(int i=0;i<Application->ComponentCount;i++)
{
if(FormTemp=dynamic_cast<TForm *>(Application->Components[i]))
{
ListBox1->Items->Add(FormTemp->Caption);
}
}
}
试试看。。恩。。
wjzhuang 2001-07-24
  • 打赏
  • 举报
回复
FORM_TEDEF=new TFORM_TEDEF(NULL);
~~~~~~~~~~~~
你这样创建可以显示窗体吗?null参数可以吗?

xrbeck 2001-07-24
  • 打赏
  • 举报
回复
诶。。刚有试过。动态创建的好象不行。NEW也试过了。Application->CreateForm(...)
也试过。读不出来。。。好象没什么办法。。
luhongjun 2001-07-24
  • 打赏
  • 举报
回复
同意Wingsun(孙春阳)。
wjzhuang 2001-07-24
  • 打赏
  • 举报
回复
看来只有你添加一些代码
在创建窗体的时候处理窗体的数量了
Wingsun 2001-07-24
  • 打赏
  • 举报
回复
这个基本上很难,因为创建的时候owner不同,所以很可能你无法正确的获取到每一个对象。
如果他在创建的时候是这样写;
TForm * pMyForm=new TForm(Application);
那么你可以遍历Application的Components对象
但是如果写的是
TForm * pMyForm=new TForm(this);
那么你就不大可能获得对象了,不过你还是可以通过Applicaiotn的Componetns对象来获取this对象,然后再遍历this对象的Components对象。
对于使用TForm * pMyForm=new TForm(NULL);的情况我觉得是没有办法获得的。
nononono 2001-07-24
  • 打赏
  • 举报
回复
wjzhuang(困惑中的程序猪), 当然可以。

你试试?

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧