📄 useroparetfm.pas.~4~
字号:
Unit UserOparetFM;
Interface
Uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, ADODB, StdCtrls, LbButton, AAText;
Type
TfrmUserOparet = Class(TForm)
GroupBox2: TGroupBox;
Label1: TLabel;
Label2: TLabel;
Edit1: TEdit;
Edit2: TEdit;
ADOQuery1: TADOQuery;
Label4: TLabel;
Edit3: TEdit;
StaticText1: TStaticText;
LbButton1: TButton;
LbButton2: TButton;
LbButton3: TButton;
AAText1: TMemo;
DataSource1: TDataSource;
Function IsExists(username: String): Boolean;
Procedure FlashGrid;
Procedure Button1Click(Sender: TObject);
Procedure Button2Click(Sender: TObject);
Procedure Edit1Exit(Sender: TObject);
Procedure Button3Click(Sender: TObject);
Procedure FormCreate(Sender: TObject);
Procedure FormClose(Sender: TObject; Var Action: TCloseAction);
Procedure Edit1Change(Sender: TObject);
Private
{ Private declarations }
Public
{ Public declarations }
End;
Const
CSNAME = 'ADMIN';
Var
frmUserOparet : TfrmUserOparet;
currusername : String;
Implementation
Uses CnBase64, MainDM;
{$R *.dfm}
Procedure TfrmUserOparet.FlashGrid;
Begin
ADOQuery1.sql.Clear;
ADOQuery1.sql.Add('SELECT * FROM 用户登入表');
ADOQuery1.open;
End;
Procedure TfrmUserOparet.Edit1Exit(Sender: TObject);
Var
code : String;
Begin
If IsExists(Edit1.Text) Then Begin
Base64Decode(ADOQuery1.fieldbyname('密码').AsString, code);
Edit2.Text := code;
End;
End;
//新增
Procedure TfrmUserOparet.Button1Click(Sender: TObject);
Var
Psw64 : String;
Begin
If StrComp(pchar(Edit2.Text), pchar(Edit3.Text)) <> 0 Then Begin
Application.MessageBox('两次输入的密码不一致,请重新输入。',
'提示信息',
mb_OK + MB_ICONINFORMATION);
Exit;
End;
ADOQuery1.sql.Text := 'select * from 用户登入表';
ADOQuery1.open;
If ADOQuery1.recordcount = 0 Then Begin
ADOQuery1.Append;
ADOQuery1.fieldbyname('用户名').AsString := Trim(Edit1.Text);
Base64Encode(Edit2.Text, Psw64);
ADOQuery1.fieldbyname('密码').AsString := Psw64;
ADOQuery1.post;
Application.MessageBox('用户名添加成功', '提示信息', mb_OK +
MB_ICONINFORMATION);
Exit;
End;
If (Edit1.Text = '') Or (Edit2.Text = '') Then Begin
Application.MessageBox('设置的用户名和密码不能为空,请重新输入!',
'提示信息', mb_OK + MB_ICONERROR);
Edit1.SetFocus;
Exit;
End;
If IsExists(Edit1.Text) Then Begin
Application.MessageBox('用户名重复,请重新输入!', '提示信息', mb_OK +
MB_ICONERROR);
Edit1.Clear;
Edit2.Clear;
Edit3.Clear;
Edit1.SetFocus;
Exit;
End;
FlashGrid;
ADOQuery1.Append;
ADOQuery1.fieldbyname('用户名').AsString := Trim(Edit1.Text);
Base64Encode(Edit2.Text, Psw64);
ADOQuery1.fieldbyname('密码').AsString := Psw64;
ADOQuery1.post;
Application.MessageBox('用户名添加成功', '提示信息', mb_OK +
MB_ICONINFORMATION);
End;
Function TfrmUserOparet.IsExists(username: String): Boolean;
Begin
ADOQuery1.sql.Text := 'select * from 用户登入表 where 用户名=''' +
username + '''';
ADOQuery1.open;
result := (ADOQuery1.recordcount = 1);
End;
Procedure TfrmUserOparet.Button2Click(Sender: TObject);
Begin
If UpperCase(Edit1.Text) = CSNAME Then Begin
Application.MessageBox(CSNAME + '是超級用戶,無法刪除!', '提示信息',
mb_OK);
Edit1.SetFocus;
Exit;
End;
If Not IsExists(Edit1.Text) Then Begin
Application.MessageBox('没有该用户名,请检查!', '提示信息', mb_OK);
Edit1.SetFocus;
Exit;
End;
If ADOQuery1.recordcount = 0 Then Exit;
ADOQuery1.Delete;
Edit1.Clear;
Edit2.Clear;
Application.MessageBox('用户名删除成功', '提示信息', mb_OK +
MB_ICONINFORMATION);
FlashGrid;
End;
Procedure TfrmUserOparet.Button3Click(Sender: TObject);
Var
Psw64 : String;
Begin
If (Edit1.Text = '') Or (Edit2.Text = '') Then Begin
Application.MessageBox('设置的用户名和密码不能为空,请重新输入!',
'提示信息', mb_OK + MB_ICONERROR);
Edit1.SetFocus;
Exit;
End;
If StrComp(pchar(Edit2.Text), pchar(Edit3.Text)) <> 0 Then Begin
Application.MessageBox('两次输入的密码不一致,请重新输入。',
'提示信息',
mb_OK + MB_ICONINFORMATION);
Exit;
End;
If Not IsExists(Edit1.Text) Then Begin
Application.MessageBox('没有该用户名,请检查!', '提示信息', mb_OK);
Edit1.SetFocus;
Exit;
End;
If StrComp(pchar(currusername), pchar(Edit1.Text)) <> 0 Then Begin
Application.MessageBox('你无权修改这个用户的密码', '提示信息', mb_OK +
MB_ICONERROR);
Exit;
End;
ADOQuery1.edit;
If UpperCase(Edit1.Text) <> CSNAME Then
ADOQuery1.fieldbyname('用户名').AsString := Trim(Edit1.Text);
Base64Encode(Edit2.Text, Psw64);
ADOQuery1.fieldbyname('密码').AsString := Psw64;
ADOQuery1.post;
FlashGrid;
Application.MessageBox('密码已修改成功', '提示信息', mb_OK +
MB_ICONINFORMATION);
End;
Procedure TfrmUserOparet.FormCreate(Sender: TObject);
Begin
Edit1.Text := currusername;
StaticText1.Caption := '當前用戶:' + currusername;
If currusername = CSNAME Then
StaticText1.Caption := StaticText1.Caption + ' (超級用戶)';
End;
Procedure TfrmUserOparet.FormClose(Sender: TObject; Var Action: TCloseAction);
Begin
ADOQuery1.Close;
Action := cafree;
frmUserOparet := Nil;
End;
Procedure TfrmUserOparet.Edit1Change(Sender: TObject);
Begin
If UpperCase(currusername) = CSNAME Then Begin
LbButton1.Enabled := true;
LbButton2.Enabled := true;
LbButton3.Enabled := true;
End
Else If UpperCase(currusername) = UpperCase(Edit1.Text) Then
Begin
LbButton1.Enabled := false;
LbButton2.Enabled := false;
LbButton3.Enabled := true;
End
Else
Begin
LbButton1.Enabled := false;
LbButton2.Enabled := false;
LbButton3.Enabled := false;
End;
End;
End.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -