如何获取当前有多少个窗体打开? ( 积分: 50 )

  • 主题发起人 主题发起人 shenfeng_126
  • 开始时间 开始时间
S

shenfeng_126

Unregistered / Unconfirmed
GUEST, unregistred user!
不是MDI窗体的情况下,如何获取当前有多少个窗体打开?
并且如何知道打开的这些窗体的Name?
 
var
i,count:integer;
begin
count:=0;
for i:=0 to application.ComponentCount-1 do
begin
if application.Components is TForm then
begin
inc(count);
listbox1.items.add(application.Components.Name);
end;
end;
showmessage(format('窗体为:%d',[count]))
end;
 
哇,,慢了!!

应该可以的
 
我试了一下,有问题。
我用button的click事件下create 几个form后,得到的application.ComponentCount始终没有变
 
你是怎么创建的?
 
如果是

form:=TForm.create(self);

这样写
var
i,count:integer;
begin
count:=0;
for i:=0 to self.ComponentCount-1 do
begin
if self.Components is TForm then
begin
inc(count);
listbox1.items.add(self.Components.Name);
end;
end;
showmessage(format('窗体为:%d',[count]))
end;
 
老兄,还是不行
 
screen.FormCount是当前有多少个窗体
screen.ActiveForm当前活动的窗体
 
早上好!

怎么会不行呢?我测试过,可以啊

贴你的代码看看
 
这样差不多吧,
 
用screen.FormCount可以实现
谢谢了!!!!!!!!!!
 
多人接受答案了。
 
后退
顶部