在click Treeview中的一个subitem时,我要弹出一个form,click另一个subitem时在同样的地方弹出form,怎样把上次的form关掉???
   我利用findwindow,但就是找不到那窗口的句柄,主要是findwindow参数不知道这里该是什么,因为每次要关掉的窗口都未定。
   另外如何使这个treeview 和 弹出的form都固定不能拖动??

解决方案 »

  1.   

    你在onchange里写入代码,来动态生成窗体就行了,把窗体放在panle,也就是这样
    左边放一个树,右边放panel
    然后左边节点变化后,把panel里的窗体Free掉,生成你新的窗体,把新生成的窗体的parent设为panel,就可以实现
      

  2.   

    readersm68(地主) :
    你还活着呢?赶紧回来吧,静姐想你了!—————————————————————————————————
    宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
    —————————————————————————————————
      

  3.   

    private
        { Private declarations }
        vFrm: TForm;
    procedure TForm1.TreeView1Click(Sender: TObject);
    begin
      if TreeView1.Selected = nil then exit;
      if Assigned(vFrm) then vFrm.Free;
      case integer(TreeView1.Selected.Data) of
        1: vFrm := TForm1.Create(self);
        2: vFrm := TForm2.Create(self);
        3: vFrm := TForm3.Create(self);
      end;
      vFrm.ShowModal;
    end;
      

  4.   

    to lxpbuaa(桂枝香在故国晚秋)    怎么拉起家常来啦?
      

  5.   

    共用一个Form就可,别创建多个Form
      

  6.   

    你的FROM都是有名字的吧,每次点击时,搜索另个FORM是否存在,存在,记下其位置,关闭它,然后创建要显示的FORM,设置其TOP,LEFT即可。
      

  7.   

    设置一个vForm:TForm的变量,每次打开一个窗口时将vForm 指向你打开的窗口,窗口关闭时将它置为nil,要打开另一个窗口时判断vForm是不是nil,如不是 vForm.close ; vForm.Free; vForm:=nil,再打开新窗口。
      

  8.   

    CSDN真TMD烂,回答了问题,提交,报错,返回,全TMD没有了,一个字----烂!你要显示的窗口是一样的吗?假设Name属性为'SubItemForm',有var
      SIForm:TForm;
    begin
      SIForm:=Application.FindComponent('SubItem') as TForm;
      if Assigned(SIForm) then
        FreeAndNil(SIForm);
      SIForm:=TForm.Create(Application);
      SIForm.Show;
    end;
      

  9.   

    CSDN真TMD烂,回答了问题,提交,报错,返回,全TMD没有了,一个字----烂!你要显示的窗口是一样的吗?假设Name属性为'SubItemForm',有var
      SIForm:TForm;
    begin
      SIForm:=Application.FindComponent('SubItem') as TForm;
      if Assigned(SIForm) then
        FreeAndNil(SIForm);
      SIForm:=TForm.Create(Application);
      SIForm.Show;
    end;