⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 userunit.~pas

📁 图书馆管理系统,非常有用,希望给你带来帮助
💻 ~PAS
字号:
unit UserUnit;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComCtrls, StdCtrls, Buttons, ExtCtrls;

type
  TUserForm = class(TForm)
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    TabSheet2: TTabSheet;
    GroupBox1: TGroupBox;
    ListView1: TListView;
    RadioGroup1: TRadioGroup;
    GroupBox2: TGroupBox;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    BitBtn3: TBitBtn;
    GroupBox3: TGroupBox;
    ListView2: TListView;
    GroupBox4: TGroupBox;
    Edit4: TEdit;
    BitBtn4: TBitBtn;
    procedure FormCreate(Sender: TObject);
    procedure BitBtn3Click(Sender: TObject);
    procedure RadioGroup1Click(Sender: TObject);
    procedure ListView1Click(Sender: TObject);
    procedure Edit1Change(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
    procedure Edit1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure TabSheet2Show(Sender: TObject);
    procedure BitBtn4Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    { Private declarations }
    procedure WMNCpaint(var Msg:TWMNCPaint); message WM_NCPAINT;
  public
    { Public declarations }
  end;

var
  UserForm: TUserForm;

implementation
uses DMUnit,Share,MainUnit;

{$R *.dfm}


procedure TUserForm.WMNCpaint(var Msg: TWMNCPaint);
begin
  inherited;
  Draw(UserForm);
end;

procedure TUserForm.FormCreate(Sender: TObject);
var
  userstr:TStrings;
  i:byte;
begin
  userstr:=TStringList.Create;
  try
    userstr:=DM.GetUserName;
    for i:=0 to userstr.Count-1 do
      listview1.Items.Add.Caption:=userstr[i];
  finally
    userstr.Free;
  end;
end;

procedure TUserForm.BitBtn3Click(Sender: TObject);
var
  userstr:TStrings;
  i:byte;
begin
  userstr:=TStringList.Create;
  listview1.Items.Clear;
  try
    userstr:=DM.GetUserName;
    for i:=0 to userstr.Count-1 do
      listview1.Items.Add.Caption:=userstr[i];
  finally
    userstr.Free;
  end;
end;

procedure TUserForm.RadioGroup1Click(Sender: TObject);
begin
  case radiogroup1.ItemIndex of
  0: begin
       bitbtn1.Enabled:=false;
       bitbtn2.Enabled:=true;
       edit1.ReadOnly:=true;
     end;
  1: begin
       bitbtn1.Enabled:=false;
       bitbtn2.Enabled:=true;
       edit1.ReadOnly:=false;
     end;
  2: begin
       bitbtn1.Enabled:=true;
       bitbtn2.Enabled:=false;
       edit1.ReadOnly:=true;
     end;
  end;
end;

procedure TUserForm.ListView1Click(Sender: TObject);
begin
  if radiogroup1.ItemIndex<>1 then
    if listview1.Selected<> nil then
       edit1.Text:=listview1.Selected.Caption;
end;

procedure TUserForm.Edit1Change(Sender: TObject);
begin
  if edit1.Text<>'' then
  begin
    edit2.ReadOnly:=false;
    edit3.ReadOnly:=false;
  end else
  begin
    edit2.ReadOnly:=true;
    edit3.ReadOnly:=true;
  end;
end;

procedure TUserForm.BitBtn1Click(Sender: TObject);
begin
  if messagedlg('真的要删除?',mtConfirmation,[mbyes,mbno],0)=mrno then
    exit;
  with DM do
  begin
    if not DM.ValUser(edit1.Text,edit2.Text) then
    begin
      showmessage('输入不正确,不可以删除!');
      edit1.SetFocus;
      exit;
    end;
    ADOConn.BeginTrans;
    try
      userQuery.SQL.Text:='delete man_info where man_id=:ino';
      UserQuery.Parameters[0].Value:=edit1.Text;
      UserQuery.Prepared;
      UserQuery.ExecSQL;
      ADOConn.CommitTrans;
    except
      ADOConn.RollbackTrans;
      showmessage('删除用户时发生异常!');
    end;
    ADOConn.Close;
  end;
end;

procedure TUserForm.BitBtn2Click(Sender: TObject);
begin
  if RadioGroup1.ItemIndex=0 then
    if not DM.ValUserName(edit1.Text) then
    begin
      showmessage('无此用户名');
      edit1.SetFocus;
      exit;
    end;
  if Radiogroup1.ItemIndex=1 then
  begin
    if edit2.Text='' then
    begin
      showmessage('还没有输入密码!');
     edit2.SetFocus;
      exit;
     end;
  end;
  if edit2.Text<>edit3.Text then
    begin
      showmessage('两次密码不一致!');
      edit2.SetFocus;
      exit;
    end;
  TabSheet2.Show;
end;

procedure TUserForm.Edit1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
    if (key=vk_down) or (key=13) then
    begin
      SelectNext(Activecontrol,True,True);
      if Activecontrol is TEdit then
      begin
        (Activecontrol as TEdit).SelectAll;
      end;
    end
    else if (key=vk_up) then
    begin
      SelectNext(Activecontrol,False,True);
      if Activecontrol is tedit then
      begin
        (Activecontrol as TEdit).SelectAll;
      end;
    end
    else
      key:=0;
end;

procedure TUserForm.TabSheet2Show(Sender: TObject);
var
  menustr:TStrings;
begin
  case radiogroup1.ItemIndex of
  0: begin
       if (edit1.Text='') then
       begin
         pagecontrol1.ActivePageIndex:=0;
         showmessage('还没有选择用户!');
         exit;
       end;
       if edit2.Text='' then
       begin
         pagecontrol1.ActivePageIndex:=0;
         showmessage('还没有输入该用户的密码!');
         exit;
       end;
       if not DM.ValUserName(edit1.Text) then
       begin
         pagecontrol1.ActivePageIndex:=0;
         showmessage('数据库中无此用户名!');
         exit;
       end;
       if not DM.ValUser(edit1.Text,edit2.Text) then
       begin
         pagecontrol1.ActivePageIndex:=0;
         showmessage('输入的密码不正确!');
         exit;
       end;
     end;
  1: begin
     if (edit1.Text='') then
       begin
         pagecontrol1.ActivePageIndex:=0;
         showmessage('还没有输入用户名!');
         exit;
       end;
       if (edit2.Text='') or (edit3.Text='') then
       begin
         pagecontrol1.ActivePageIndex:=0;
         showmessage('还没有输入该用户的密码!');
         exit;
       end;
       if edit2.Text<>edit3.Text then
       begin
         showmessage('输入的两次密码不一致!');
         pagecontrol1.ActivePageIndex:=0;
         exit;
       end;
       if DM.ValUserName(edit1.Text) then
       begin
         pagecontrol1.ActivePageIndex:=0;
         showmessage('该用户名已经存在 !');
         exit;
       end;
     end;
  end;
  edit4.Text:=edit1.Text;
  menustr:=TStringList.Create;
  try
    menustr:=DM.GetMenu(edit1.Text);
    listview2.Items.Item[1].Checked:=menustr[0]='y';
    listview2.Items.Item[2].Checked:=menustr[1]='y';
    listview2.Items.Item[3].Checked:=menustr[2]='y';
    listview2.Items.Item[4].Checked:=menustr[3]='y';
    listview2.Items.Item[6].Checked:=menustr[4]='y';
    listview2.Items.Item[7].Checked:=menustr[5]='y';
    listview2.Items.Item[8].Checked:=menustr[6]='y';
    listview2.Items.Item[10].Checked:=menustr[7]='y';
  finally
    menustr.Free;
  end;
  BitBtn4.Enabled:=not (radiogroup1.ItemIndex=2);
end;

procedure TUserForm.BitBtn4Click(Sender: TObject);
begin
  with DM do
  begin
    ADOconn.BeginTrans;
    try
      case radiogroup1.ItemIndex of
      0: begin
           UserQuery.SQL.Text:='update man_info set man_pass=:in0,lend_reg=:in1,'+
                               'return_reg=:in2,book_buy=:in3,book_query=:in4,'+
                               'lend_man=:in5,user_man=:in6,other_man=:in7,'+
                               'log_query=:in8 where man_id=:in9';
           UserQuery.Parameters[0].Value:=edit2.Text;
           if listview2.Items.Item[1].Checked then
             UserQuery.Parameters[1].Value:='y'
           else
             UserQuery.Parameters[1].Value:='n';
           if listview2.Items.Item[2].Checked then
             Userquery.Parameters[2].Value:='y'
           else
             Userquery.Parameters[2].Value:='n';
           if listview2.Items.Item[3].Checked then
             UserQuery.Parameters[3].Value:='y'
           else
             UserQuery.Parameters[3].Value:='n';
           if listview2.Items.Item[4].Checked then
             UserQuery.Parameters[4].Value:='y'
           else
             UserQuery.Parameters[4].Value:='n';
           if listview2.Items.Item[6].Checked then
             UserQuery.Parameters[5].Value:='y'
           else
             Userquery.Parameters[5].Value:='n';
           if listview2.Items.Item[7].Checked then
             UserQuery.Parameters[6].Value:='y'
           else
             UserQuery.Parameters[6].Value:='n';
           if listview2.Items.Item[8].Checked then
             UserQuery.Parameters[7].Value:='y'
           else
             UserQuery.Parameters[7].Value:='n';
           if listview2.Items.Item[10].Checked then
             UserQuery.Parameters[8].Value:='y'
           else
             UserQuery.Parameters[8].Value:='n';
           UserQuery.Parameters[9].Value:=edit4.Text;
         end;
      1: begin
            UserQuery.SQL.Text:='insert into man_info(man_id,man_pass,lend_reg,'+
                                'return_reg,book_buy,book_query,lend_man,user_man,'+
                                'other_man,log_query) values(:in0,:in1,:in2,:in3,'+
                                ':in4,:in5,:in6,:in7,:in8,:in9)';

           UserQuery.Parameters[0].Value:=edit4.Text;
           UserQuery.Parameters[1].Value:=edit2.Text;
           if listview2.Items.Item[1].Checked then
             UserQuery.Parameters[2].Value:='y'
           else
             UserQuery.Parameters[2].Value:='n';
           if listview2.Items.Item[2].Checked then
             Userquery.Parameters[3].Value:='y'
           else
             Userquery.Parameters[3].Value:='n';
           if listview2.Items.Item[3].Checked then
             UserQuery.Parameters[4].Value:='y'
           else
             UserQuery.Parameters[4].Value:='n';
           if listview2.Items.Item[4].Checked then
             UserQuery.Parameters[5].Value:='y'
           else
             UserQuery.Parameters[5].Value:='n';
           if listview2.Items.Item[6].Checked then
             UserQuery.Parameters[6].Value:='y'
           else
             Userquery.Parameters[6].Value:='n';
           if listview2.Items.Item[7].Checked then
             UserQuery.Parameters[7].Value:='y'
           else
             UserQuery.Parameters[7].Value:='n';
           if listview2.Items.Item[8].Checked then
             UserQuery.Parameters[8].Value:='y'
           else
             UserQuery.Parameters[8].Value:='n';
           if listview2.Items.Item[10].Checked then
             UserQuery.Parameters[9].Value:='y'
           else
             UserQuery.Parameters[9].Value:='n';
         end;
      end;
      UserQuery.Prepared;
      UserQuery.ExecSQL;
      ADOconn.CommitTrans;
    except
      ADOconn.RollbackTrans;
      showmessage('发生意外,事务回滚!');
    end;
    UserQuery.Close;
  end;
  showmessage('恭喜,数据更新成功!');
  tabsheet1.Show;
end;

procedure TUserForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  UserForm:=nil;
  Action:=caFree;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -