我在程序中用了一个Panel和treeview控件,还有一些窗体。
想实现点击左边的TREEVIEW的item,右边的Panel控件中的窗体自动切换,通过以下部分代码,实现了初次点击时切换的功能:procedure TfrmMain.FormCreate(Sender: TObject);
begin
      //初始化窗体
      formSystemInfo := TframeSystemInfo.Create(Application);
      formSMTPSet := TSMTPSet.Create(Application);
end;procedure TfrmMain.tvwSystemMenuClick(Sender: TObject);
begin
   if (tvwSystemMenu.Selected.Text = '系统服务') then
      formsystemInfo.Dock(PanelMainFrame,panelMainframe.ClientRect);   if (tvwSystemMenu.Selected.Text = 'SMTP设置') then
      formSMTPSET.Dock(PanelMainFrame,panelMainframe.ClientRect);end;但已经在PANEL中显示过的窗体,再次在左边的treeview中点击时就不再显示了,请问高手该如何解决?你们时怎么做的呢?我对delphi不熟,请帮帮我。谢谢!

解决方案 »

  1.   

    可能需要调用show方法或是bringtofront方法
      

  2.   

    show方法我已经试过了,没反映。
      

  3.   

    你可以使用AHM控件AHMFromManager ,把他的屬性改一改就可以了!Parnet屬性指向他的父控件!
      

  4.   

    左边用ListView,右边用一个PageControl,将昨天ListView的节点与右边的PageControl的PageIndex联系起来,在窗体创建的时候,将PageControl的TabVisible设置为False,效果和你需要是一样的.
      

  5.   

    我知道楼上朋友说的那样做法,但我的页面很多,写在一个地方太乱,不利于维护。
    如果用窗体来格开的化,直接在PANEL中LOAD窗体,效果会好很多。
    请高手指点!还有阿波说的用AHM控件?是Delphi自带的吗?还是第三方控件?第三方控件我就不予考虑了,做商业化的产品,开发小组是不会同意用没有源码的控件的。