📄 authorization.pas
字号:
unit authorization;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, ExtCtrls, Grids, ValEdit;
type
TfrmAuthorization = class(TForm)
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
BitBtn3: TBitBtn;
addUser: TPanel;
Label1: TLabel;
name: TEdit;
Label2: TLabel;
pwd: TEdit;
Button1: TButton;
Label3: TLabel;
pwdconfirm: TEdit;
Label4: TLabel;
role: TComboBox;
deleteUser: TPanel;
Label5: TLabel;
Button2: TButton;
list1: TListBox;
procedure FormCreate(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frmAuthorization: TfrmAuthorization;
implementation
{$R *.dfm}
uses comFunc;
procedure TfrmAuthorization.FormCreate(Sender: TObject);
var
s1,s2,s3:string[60];
f:file;
nr:integer;
begin
addUser.Visible:=true;
deleteUser.Visible:=false;
assignFile(f,'sys.ini');
reset(f,1);
repeat
blockRead(f,s1,12,nr);
blockRead(f,s2,12,nr);
blockRead(f,s3,12,nr);
//字符串信息解密
s1:=Decrypt(s1,12345);
if nr<>0 then
list1.Items.Add(trim(s1));
until(nr=0);
closeFile(f);
end;
procedure TfrmAuthorization.BitBtn2Click(Sender: TObject);
begin
addUser.Visible:=true;
deleteUser.Visible:=false;
end;
procedure TfrmAuthorization.Button1Click(Sender: TObject);
var
f:file;
nr:integer;
s1,s2,s3:string[60];
size:longint;
begin
//判断用户的有效性
if name.Text='' then
begin
showMessage('请输入用户名!');
pwd.Text:='';
pwdConfirm.Text:='';
activeControl:=name;
exit;
end;
//关联并打开文件
assignFile(f,'sys.ini');
reSet(f,1);
//检测用户是否已经存在
repeat
blockRead(f,s1,12,nr);
blockRead(f,s2,12,nr);
blockRead(f,s3,12,nr);
s1:=Decrypt(s1,12345);//为字符串解密
if s1=name.Text then
begin
showMessage('这个用户已经存在!');
pwd.Text:='';
pwdConfirm.Text:='';
activeControl:=name;
closeFile(f);
exit;
end;
until(nr=0);
closeFile(f);
//检测密码输入是否一致
if pwd.Text<>pwdconfirm.Text then
begin
MessageDlg('密码不一致',mtWarning,[mbOk],0);
pwd.Text:='';
pwdConfirm.Text:='';
exit;
end;
//将新用户名,密码,权限写入系统配置文件
reSet(f,1);
size:=fileSize(f);
seek(f,size);//移到文件尾
s1:=name.Text;
s2:=pwd.Text;
s3:=inttostr(role.ItemIndex+1);
//刷新列表
list1.Items.Add(trim(s1));
//给字符串加密
s1:=Encrypt(s1,12345);
s2:=Encrypt(s2,12345);
s3:=Encrypt(s3,12345);
//写入加密后的字符串信息
blockWrite(f,s1,12,nr);
blockWrite(f,s2,12,nr);
blockWrite(f,s3,12,nr);
closeFile(f);
showMessage('添加用户成功!');
//清屏操作
name.Text:='';
pwd.Text:='';
pwdConfirm.Text:='';
role.ItemIndex:=0;
activeControl:=name;
end;
procedure TfrmAuthorization.BitBtn3Click(Sender: TObject);
begin
deleteUser.Visible:=true;
addUser.Visible:=false;
end;
procedure TfrmAuthorization.Button2Click(Sender: TObject);
var
f1:file;
f2:file;
nr,nw:integer;
s1,s2,s3:string[60];
begin
//检查是否选中一个用户
if list1.ItemIndex<0 then
begin
showMessage('请先选择要删除的用户');
exit;
end;
{询问是否要真的删除}
if MessageDlg('真的要删除用户吗?',mtConfirmation,[mbYes, mbNo],0)=mrNo then
exit;
{对配置文件相应项删除}
//关联配置文件
assignFile(f1,'sys.ini');
//关联临时文件
assignFile(f2,'tmp.ini');
//打开配置文件
reset(f1,1);
//创建临时文件
reWrite(f2,1);
repeat
blockRead(f1,s1,12,nr);
blockRead(f1,s2,12,nr);
blockRead(f1,s3,12,nr);
s1:=Decrypt(s1,12345);
if trim(s1)<>list1.Items[list1.ItemIndex] then
begin
s1:=Encrypt(s1,12345);
blockWrite(f2,s1,12,nw);
blockWrite(f2,s2,12,nw);
blockWrite(f2,s3,12,nw);
end;
until(nr=0);
//对文件进行关闭操作
//closeFile(f1);
//closeFile(f2);
//把临时文件中的内容写回到配置文件中
reWrite(f1,1);
reSet(f2,1);
repeat
blockRead(f2,s1,12,nr);
blockRead(f2,s2,12,nr);
blockRead(f2,s3,12,nr);
blockWrite(f1,s1,12,nw);
blockWrite(f1,s2,12,nw);
blockWrite(f1,s3,12,nw);
until(nr=0);
//对文件进行关闭操作
closeFile(f1);
closeFile(f2);
//删除临时文件
deleteFile('tmp.ini');
{更新列表控件}
list1.Items.Delete(list1.ItemIndex);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -