在程序中用ComboBox记录已启动子窗体的Caption,想通过点击ComboBox内的任意一Items,把所对应的窗体BringToFront.该怎样写,请哪位大哥帮帮忙,谢谢啦!!!

解决方案 »

  1.   

    子窗体?
    知道Handle就可以了使用User32.dll内的API:SwitchToThisWindow就可以了
    要自己声明的,Delphi没有自带
      

  2.   

    你可直接將該窗體當做個 object存進去, 再用 Combobox1.Items.Objects 取出!!
      

  3.   

    說了一半, 不好意思, 可用
    ComboBox1.AddItem

    ComboBox1.AddObject
      

  4.   

    又錯了, 另外一個是:
    ComboBox1.Items.AddObject
      

  5.   

    谢谢aiirii兄,但由于我是一名刚入门的Delphi爱好者,所以还有很多弄不懂的地方,希望aiirii兄不吝赐教!现在我能够通过ComboBox1.Items.AddObject存进,但取出时要让Itmes所对应的窗体提前,这点我该怎么做呢?
      

  6.   

    有个比较笨的方法,记住窗体caption的同时,记住窗体的name,需要bringtofront的时候,把窗体show一下,不就行了,反正你也没有把窗体close,如果close了你bringtofront时也会出错
      

  7.   

    如果Form1是一窗体的话,Form1.BrigToFront是没有问题的.我用数据库的方式记住了窗体名,但取出来却是字符型的,字符型是不能用BringToFront的!!!语言表达能力不行,只能说的这个样子了,不知XD们搞懂我说的问题没有!
      

  8.   

    遍历Screen.Forms,然后判断Form名和你要找的Form相同的,对它进行BringToFront操作,
    但是这样,如果正好有两个同名窗口就麻烦了。所以,比较好的是,每次新建一个窗口,就将窗口名,和窗口指针保存在一个全局list里,combobox中的窗口名称就取自这个列表,要显示选中的窗口时,根据combobox中的itemindex到列表中找相应的窗口,窗口destroy时,将本窗口从列表中移除。