Delphi如何获取当前运行的fsMDIChild窗口?
我在主界面的旁边做一个memo,让memo里面显示当前正在运行的窗口,当我用鼠标点击memo里窗口的标题时,最小化运行的窗口就会显示出来。

解决方案 »

  1.   

    ShowMessage(ActiveMDIChild.Caption)ActiveMDIChild.Show
      

  2.   

    to s11ss:
    ShowMessage(ActiveMDIChild.Caption) 只能获取当前活动的窗体,不能获取所有运行的fsMDIChild窗口。
      

  3.   

    所有已打开的MDI窗体,下面的self是fsMDIForm主窗体for i:=0 to self.MDIChildCount-1 do
        showmessage(self.MDIChildren[i].Caption);
      

  4.   

    在事件里写一个self或是你的主窗体名,然后打个点,下拉框里就可以找到MDIChildCount,MDIChildren这样的属性
      

  5.   

    to kaikai_kk:
    用你的方法能获取到当前所有运行的子窗体的名字了。但是怎么做到 当我用鼠标点击memo里窗口的标题时,最小化运行的窗口就会显示出来?
      

  6.   

    如果按照kaikai_kk的方法添加的是Caption,那就用FindWindow函数
      hWinHwd:=FindWindow(nil,Pchar(self.MDIChildren[i].Caption));
      ShowWindow(hWinHwd,SW_SHOW);
      

  7.   

    findwindow(nil,PChar(memo1.lines[memo1.lines[i]]);或者用一个动态数组管理创建了的子窗体,memo1里面的内容和数组建立一个对应关系
      

  8.   

    应当使用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