我是一个初学者,尝试做了两个小数据库的东东,感觉delphi上手较快,易用。  现请教一个问题,一直没搞清楚。 我不喜欢在主窗体中用菜单,而是用顶部maner图片,左侧导航。以前都是在右侧用同的paenl组件上放置各模块需要的东西,最后做成一个exe文件,运行时点击不同的左侧按钮时让右侧的paenl显示或不显示。头痛是panel较多,设计时很烦;还有就是生成的exe文件也大,启动慢。没有按功能划分模块,很笨哟!  我知道,如果系统是一个主窗体,在主窗体中通过菜单方式访问许多子窗体的设计模式的话。通过看书学习后,我知道了一般是将主窗体和数据模块datamodule做一个main,其它的子窗体做成不同bpl包,包1,包2...运行在主窗体中根据需要直接调用包就可以了。这样修改个别模块较方便,符合软件设计的基本规范。  问题是,如前所述,我“我不喜欢在主窗体中用菜单,而是用顶部maner图片,左侧导航。”,点击左侧的按钮后子模块也不是以新窗体的方式来显示,而是感觉像panel一样主窗体右侧中显示。我发现很多商业软件也是这样。
    
  要达到这种效果,不知道如何封闭子模块为bpl包。我试过了,还是将子模块以窗体的方式封闭为bpl的话,设置窗体外观为无边框,将子窗体位置设计在主窗体的右侧。这就存在一个焦点问题,调有弹出一个子窗体时,若不关闭子窗体,主窗体就无法获得焦点。可是我发现商业软件也是把子模块做成bpl,在左侧导航和右侧内容间可以方便切换焦点呀。  没搞懂,请教高手!甚为感谢! 
 
 

解决方案 »

  1.   

    我习惯右侧改用pagecontrol
    2M多的exe,aspack压缩后800K左右
      

  2.   

    用MDI窗体实现,每个窗体封装bpl,exe文件大可以压缩的。
      

  3.   

    我正是用的MDI窗体呀,把每个业务子窗何等封装为BPL。 我希望将主窗体做成框架网页一样的功能,上面是baner图片,左侧是导航,右侧是按需加载不同的bpl.我就是不知道子模块如何做,做成窗体吧,有焦点问题(不关闭子窗体,主窗体得不到焦点)
      

  4.   

    有一个make focus 属性,不好意思好长时间没来~