我说一下具体的思路吧,代码很简单,你都会的。
1、select 权限 from 用户名 where 用户名=78product,然后在Tform的private中申明
 一个 ok:boolean;
2、根据返回的权限来判断是否把“更新”这个按钮给用户看,
  如果能看,那ok:=true,然后判断ok来得到btnRefresh.visible:=true
 如果不能看,那ok:=flase,然后判断ok来得到btnRefresh.visible:=flase您的问题就是如此了,呵呵。希望能对您有帮助。

解决方案 »

  1.   

    写得好一点就是建一个User类,把当前用户的信息放在里面,然后在类里面维护用户数据库,假设类名叫TSysOperators,则
    TForm1::OnButton1Click(...)
    {
      if(SysOperator1->HasModifyRights)
      {
        .....
      }
      else if(SysOperator1->HasQueryRights)
      {
        .....
      }
    }
    要是想管理各控件的可见属性则在Form的OnCreat或OnShow事件中管理即可,方法见78product的回复.
      

  2.   

    78product():我的按钮特别多,是不是每一个都要判断,有9个表呢。Winsky([email protected]) :我太菜了,还是不明白。
      

  3.   

    我给你代码了。还有demo我做了一个用户类,他能管理用户,并分配权限type
      TUserLevelClass = class
      private
        FUserTable: TTable;
        FLevel: Integer;
        FUserName: string;
        FModiBool: Boolean;
        FUserNameList: TStringList;
        procedure SetUserName(const Value: string);
        procedure SetModiBool(const Value: Boolean);
        function GetTransID(Fixlength: Integer): string;  public
        function CheckInfo(qUserName, qPassword: string): Boolean;
        constructor Create;
        Destructor Destroy; override;
        procedure ChangePassword(qUSerName: string; qPassWord: string); //变更密码
        procedure RefreshNameList;
        procedure AddUser(qName, qPassword: string; qLevel: Integer);
        procedure DeleteUser(qName: string);
        Property ModiBool: Boolean read FModiBool write SetModiBool default False;
        property UserName: string Read FUserName write SetUserName;
        property Level: Integer Read FLevel;       //用户级别 0:高级,1:初级
        property UserNameList: TStringList Read FUserNameList;
      end;
    var
      user: TUserLevelClass;
      

  4.   

    算了!给你发程序,你也不会仔细看,我上回给你发的你看了吗?
    要想学好,你要自己做,碰到问题在,来问吧!!!!
    要好好看看Delphi自带的例程!
    祝你好运!