Delphi如何获取当前运行的fsMDIChild窗口?

linlingwei 2012-06-24 10:05:12
Delphi如何获取当前运行的fsMDIChild窗口?
我在主界面的旁边做一个memo,让memo里面显示当前正在运行的窗口,当我用鼠标点击memo里窗口的标题时,最小化运行的窗口就会显示出来。
...全文
260 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
s11ss 2012-06-29
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]
to kaikai_kk:
用你的方法能获取到当前所有运行的子窗体的名字了。但是怎么做到 当我用鼠标点击memo里窗口的标题时,最小化运行的窗口就会显示出来?
[/Quote]
应当使用TListBox而不是TMemo。
所有已打开的MDI窗体,下面的self是fsMDIForm主窗体

for i:=0 to self.MDIChildCount-1 do//把所有运行的子窗体的标题获取到ListBox1中
ListBox1.AddItem(self.MDIChildren[i].Caption, self.MDIChildren[i]);

在ListBox1的OnClick事件里头加上:
TForm(ListBox1.Items.Objects[ListBox1.ItemIndex]).Show
鐵蛋 2012-06-25
  • 打赏
  • 举报
回复
在事件里写一个self或是你的主窗体名,然后打个点,下拉框里就可以找到MDIChildCount,MDIChildren这样的属性
newfang 2012-06-25
  • 打赏
  • 举报
回复
findwindow(nil,PChar(memo1.lines[memo1.lines[i]]);

或者用一个动态数组管理创建了的子窗体,memo1里面的内容和数组建立一个对应关系
鐵蛋 2012-06-25
  • 打赏
  • 举报
回复
如果按照kaikai_kk的方法添加的是Caption,那就用FindWindow函数

hWinHwd:=FindWindow(nil,Pchar(self.MDIChildren[i].Caption));
ShowWindow(hWinHwd,SW_SHOW);
linlingwei 2012-06-25
  • 打赏
  • 举报
回复
to kaikai_kk:
用你的方法能获取到当前所有运行的子窗体的名字了。但是怎么做到 当我用鼠标点击memo里窗口的标题时,最小化运行的窗口就会显示出来?
s11ss 2012-06-24
  • 打赏
  • 举报
回复
ShowMessage(ActiveMDIChild.Caption)

ActiveMDIChild.Show
kaikai_kk 2012-06-24
  • 打赏
  • 举报
回复
所有已打开的MDI窗体,下面的self是fsMDIForm主窗体

for i:=0 to self.MDIChildCount-1 do
showmessage(self.MDIChildren[i].Caption);
linlingwei 2012-06-24
  • 打赏
  • 举报
回复
to s11ss:
ShowMessage(ActiveMDIChild.Caption) 只能获取当前活动的窗体,不能获取所有运行的fsMDIChild窗口。

5,392

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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