在生成数据记录的添加或修改窗体时,隐藏一些项目(字段),这些项目对应控件的位置怎么摆放?比如:生成一个人员信息添加窗体,这个窗体中有许多字段,当前登录人不能查看、编辑“职称”、“学历”、“学位”等字段,
并且“职称”、“学历”、“学位”这些字段所对应控件的位置可能也不挨着排列
那么:
1、如果使用disabled属性,则“职称”、“学历”、“学位”三个控件仍然在窗体中出现,感觉这样不太好,因为登录人并没有这三个字段的权限
2、如果使用Visible属性,则“职称”、“学历”、“学位”三个控件被隐藏,这三个控件所占据的位置是空白,感觉界面不美观,那么窗体中其它控件的位置怎么重新自动动态摆放(排列)大家都是怎么处理这个问题的?

解决方案 »

  1.   

    具体看情况。举个例子啊。
    在窗体里建多个Panel,把要隐藏的项目(字段)放置在其中一个Panel1上,Align置为alTop;其它项目(字段)放置在另外一个Panel2上,Align置为alClient;Panel的BeveInner和BeveOuter置为bvNOne。这样,你只需要控制Panel的显示和隐藏。
      

  2.   

    要是是偶的话,偶会做类似二列STRINGGRID类似的东东一列是字段名,一列是输入窗口初始化根据权限把要输入的字段名及对应输入要求取出来放去STRINGGRID里只是原理SOSO
      

  3.   

    STRINGGRID?
    那么怎么处理下面的问题:
    1、可能一行有多个字段(两个以上)
    2、一个字段可能跨几行,如人员照片字段
    3、动态写代码生成组件的话,比如:像日期选择组件、DBLookupConboBox这些组件,还需要动态设置组件的各种属性:高度、宽度、位置坐标等,代码量好大呀?