一个多文档应用程序中的动态权限分配。mainform有50个子窗体,如何把各个子窗体分配给不同权限的用户?使得登陆用户只能创建有权限的窗体。

解决方案 »

  1.   

    在窗体创建时
    不同的用户中将各个不同的窗体的ENABLED进行设置
      

  2.   

    可以考虑设立一个窗体使用权限表,但如何在系统增减窗体时可以把子窗体自动录入窗体使用权限表,以及录入子窗体的哪些属性呢?关键是在创建子窗体时如何对应?代码: for i:=0 to MDIChildcount-1 do
      begin
       if MDIChildren[i] is TForm_read_chaobiao_card_all then
        begin
         MDIChildren[i].Show;
         MDIChildren[i].windowstate:=wsNormal;
         Exit;
        end;
      end;
     OldCursor:=Screen.Cursor;
     Screen.Cursor:=crHourglass;
      try
       Form_read_chaobiao_card_all:=TForm_read_chaobiao_card_all.Create(Application);
      finally
        Screen.Cursor:=OldCursor;
      end;
      

  3.   

    建立权限表把菜单中对就的窗体进行EANABLE设定
      

  4.   

    如何在系统运行时把所有的子窗体的name,caption用代码写到一张表里.而不是手工先把系统权限录入表中。
      

  5.   

    把这些窗体name,caption作为可以分配的权限资源,在系统运行时写入系统功能表。然后新建用户组,根据需要给各个组分配一些窗体可以用。最后在每组中建用户。用户登陆时,检索系统功能表,根据检索结果(窗体name,caption)动态生成子窗体