请高手讲讲 常用的LOGIN窗体:
1.'用户名'和'密码'是用什么控件实现的?
2.具体的实现方法是什么?
3.对于访库时的控制有什么?
4.对于密码的常用加密方法的实现?
5.对于不同的登陆,我要设置一个权限,应该在修改密码的时候做什么限制,怎么实现?

解决方案 »

  1.   

    用户名和密码的问题,你做一个登录窗口就是,不想让数据库自己的登录窗口出现,把连接数据库的组件的LoginPrompt设成false即可最简单的权限就是把每个菜单项放到一张表中,设成它对某个操作员是否可用加密么,我想你只是想对操作员的口令进行加密,写一段加密守符串的函数即可,给个一、例子如下:    Function Decrypt(const s:string;key:integer):string; //key=1时为加密,0为解密Function TChatForm.Decrypt(const S:string;key:integer):string;
    var
       I:Integer;
    begin
       Result:='';
       case key of
       1:  //加密
        begin
          for i:=1 to length(s) do
             result := result+chr(ord(s[i]) xor i xor 69);
          result := result + char(69);
        end;
       0:  //解密
        begin
          for i:=1 to length(s) - 1 do
             result := result+chr(ord(s[i]) xor i xor 69);
        end;
       end;
    end;
      

  2.   

    如果用BDE
    1.用TDatabase
    2.
    function ConnectDB(DataBase:TDatabase;ServerName,UserName,PassWord:string;
      DBName:string='master'):Boolean;
    begin
      Result:=false;
      DataBase.Connected:=false;
      DataBase.Params.Clear;
      Database.DriverName:='MSSQL';
      Database.Params.Values['DataBase Name']:=DBName;
      Database.Params.Values['Server Name']:=ServerName;
      Database.Params.Values['User Name']:=UserName;
      Database.Params.Values['PassWord']:=Password;
      try
        Database.Connected:=true;
      except
        Exit;
      end;
      Result:=true;
    end;
      

  3.   

    对于不同的登陆,我要设置一个权限,应该在修改密码的时候做什么限制,怎么实现?
    用action的tag属性来设置
    用户名的控件就是普通的edit就可以了
    密码显示的时候用maskedie显示
      

  4.   

    1.'用户名'和'密码'是用什么控件实现的?
    2.具体的实现方法是什么?
    3.对于访库时的控制有什么?
    4.对于密码的常用加密方法的实现?
    5.对于不同的登陆,我要设置一个权限,应该在修改密码的时候做什么限制,怎么实现?
    用户名和密码简单的用EDIT就可以实现,不过是把密码EDIT的passwordchar属性改为你想要的密码掩码。
    一般数据库应用我基本上不限制用户在数据库中的权限,都是在程序中以SA(MS SQL SERVER)连接数据库,对数据库的读写权限都是在程序中实现这样控制灵活。
    密码的常用加密算法很多,强大有MD3,3DES等当然实现起来很复杂我找了很久也没找到别人写好的DELPHI的这些算法的实现。简单你可以仅仅把输入的字符移个位,这样的算法很多你可以找找。
    用户的权限基本上你要建一张表在表的不同字段里面放置用户的基本信息,权限设置等,用户登陆是取出来在程序中你需要验证的地方进行验证就可以了。