📄 userunit.~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 + -