📄 userandpassword.~pas
字号:
unit UserAndPassWord;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ComCtrls, Db, DBTables, StdCtrls, ImgList, ExtCtrls, Buttons, Variants,
ADODB;
type
TUserAndPassWordFrm = class(TForm)
ListView1: TListView;
ImageList1: TImageList;
Image2: TImage;
Label1: TLabel;
Label2: TLabel;
BitBtn3: TBitBtn;
BitBtn4: TBitBtn;
BitBtn5: TBitBtn;
GroupBox1: TGroupBox;
Image1: TImage;
BitBtn1: TBitBtn;
Label3: TLabel;
Label5: TLabel;
ManagerTable: TADOTable;
procedure FormCreate(Sender: TObject);
procedure ListView1Click(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure ListView1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
procedure BitBtn4Click(Sender: TObject);
procedure BitBtn5Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure ListView1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure ListView1SelectItem(Sender: TObject; Item: TListItem;
Selected: Boolean);
private
{ Private declarations }
public
{ Public declarations }
OldItem: TListItem;
procedure ManagerInsertListView1;
end;
var
UserAndPassWordFrm: TUserAndPassWordFrm;
gpLoginName: ShortString;
gpPassLevel: integer;
procedure SetUserAndPassword(const LoginName: ShortString; const PassLevel: integer); export;
implementation
uses ChangePassWord, ChangeCharacter, UserGuide,NumberManger;
{$R *.DFM}
//**********************************************************************
procedure SetUserAndPassword(const LoginName: ShortString; const PassLevel: integer);
begin
gpLoginName := LoginName;
gpPassLevel := PassLevel;
UserAndPassWordFrm := TUserAndPassWordFrm.Create(Application); //-- Create the Aboutbox
try
UserAndPassWordFrm.ShowModal; //-- Try and make the Aboutbox modal
finally //-- Finally, or "make sure"
UserAndPassWordFrm.Free; //-- Unload the instance of our Aboutbox
end;
end;
//**********************************************************************
//**********************************************************************
//显示库中所有用户
procedure TUserAndPassWordFrm.ManagerInsertListView1;
var
ListItem: TListItem;
begin
ListView1.Items.Clear;
try
if not ManagerTable.Active then ManagerTable.Open;
ManagerTable.First;
while not ManagerTable.Eof do
begin
with ListView1 do
begin
{ Process each record here }
ListItem := Items.Add;
ListItem.Caption:=ManagerTable.FieldByName('FUserName').AsString;
ListItem.SubItems.Add(ManagerTable.FieldByName('FUserPower').AsString);
end;
ManagerTable.Next;
end;
finally
ManagerTable.Close;
end;
end;
//**********************************************************************
//**********************************************************************
procedure TUserAndPassWordFrm.FormCreate(Sender: TObject);
begin
ManagerInsertListView1;
end;
//**********************************************************************
//**********************************************************************
procedure TUserAndPassWordFrm.ListView1Click(Sender: TObject);
begin
if Assigned(ListView1.Selected) then
begin
GroupBox1.Caption := '【'+ListView1.Selected.Caption + '】' + ListView1.Selected.SubItems.Strings[0] + '的密码';
Label3.Caption := '要更改'+ListView1.Selected.Caption + ListView1.Selected.SubItems.Strings[0]+'的密码,';
OldItem := ListView1.Selected;
end
else
ListView1.Selected := OldItem;
end;
procedure TUserAndPassWordFrm.FormActivate(Sender: TObject);
begin
ListView1.SetFocus;
if ListView1.Items.Count > 0 then
begin
ListView1.Selected := ListView1.Items[0];
OldItem := ListView1.Items[0];
GroupBox1.Caption := '【'+ListView1.Items[0].Caption + '】' + ListView1.Items[0].SubItems.Strings[0] + '的密码';
Label3.Caption := '要更改'+GroupBox1.Caption;
BitBtn1.Enabled := True;
end else
begin
GroupBox1.Caption := '';
Label3.Caption := '';
OldItem := nil;
BitBtn1.Enabled := False;
end;
end;
procedure TUserAndPassWordFrm.ListView1MouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
if not Assigned(ListView1.Selected) then
ListView1.Selected := OldItem;
end;
procedure TUserAndPassWordFrm.BitBtn1Click(Sender: TObject);
begin
ChangePassWordFrm := TChangePassWordFrm.Create(Self);
try
ChangePassWordFrm.ShowModal;
finally
ChangePassWordFrm.Free;
end;
end;
procedure TUserAndPassWordFrm.BitBtn3Click(Sender: TObject);
begin
//UserGuide.UserGuideFrm.Button3Click(Sender);
UserGuideFrm := TUserGuideFrm.Create(self);
{try
UserGuideFrm.ShowModal;
finally
UserGuideFrm.Free;
end; }
end;
procedure TUserAndPassWordFrm.BitBtn4Click(Sender: TObject);
var
MyListItem: TListItem;
Str1, Str2, TmpStr: string;
begin
if gpPassLevel = 1 then
TmpStr := '超级用户'
else if gpPassLevel = 2 then
TmpStr := '高级用户'
else if gpPassLevel = 3 then
TmpStr := '普通用户';
if ListView1.SelCount < 1 then
MessageDlg('请选择要删除的用户!', mtError, [mbOK], 0)
else
begin
MyListItem := ListView1.Selected;
Str1 := MyListItem.Caption;
Str2 := MyListItem.SubItems.Strings[0];
with ManagerTable do begin
if not Active then Open;
try
if not Locate('FUserName;FUserPower', VarArrayOf([Str1,Str2]), []) then
MessageDlg('该用户不存在!', mtError, [mbOK], 0)
else begin
if Str1 = 'Administrator' then begin
MessageDlg('【Administrator】是系统默认用户,不允许删除,但可以更改密码!', mtError, [mbOK], 0);
Exit;
end;
if (Str1 = gpLoginName) and (Str2 = TmpStr) then begin
MessageDlg('不允许删除登录用户,但可以更改密码!', mtError, [mbOK], 0);
Exit;
end;
if (MessageDlg('确实要删除【' + Str1 + '】' + Str2 + '吗?', mtConfirmation, [mbOK,mbCancel], 0) = mrCancel) then
Exit
else
Delete;
end;
finally
Close;
end;
end;
end;
ManagerInsertListView1;
ListView1.Refresh;
if ListView1.Items.Count = 0 then
begin
GroupBox1.Caption := '';
Label3.Caption := '';
BitBtn1.Enabled := False;
end else
begin
GroupBox1.Caption := '【'+ListView1.Items[0].Caption +'】的密码';
Label3.Caption := '要更改【'+ListView1.Items[0].Caption+'】的密码,';
ListView1.SetFocus;
ListView1.Selected := ListView1.Items[0];
OldItem := ListView1.Items[0];
BitBtn1.Enabled := True;
end;
end;
procedure TUserAndPassWordFrm.BitBtn5Click(Sender: TObject);
begin
if ListView1.Selected.Caption = 'Administrator' then
begin
MessageDlg('该用户是系统默认用户,不允更改属性,但可以更改密码!', mtError, [mbOK], 0);
Exit;
end;
ChangeCharacterFrm := TChangeCharacterFrm.Create(Self);
try
ChangeCharacterFrm.ShowModal;
finally
ChangeCharacterFrm.Free;
end;
end;
procedure TUserAndPassWordFrm.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
if ManagerTable.Active = True then
ManagerTable.Close;
end;
procedure TUserAndPassWordFrm.ListView1KeyDown(Sender: TObject;
var Key: Word; Shift: TShiftState);
begin
if Key = VK_DELETE then BitBtn4.Click;
end;
procedure TUserAndPassWordFrm.ListView1SelectItem(Sender: TObject;
Item: TListItem; Selected: Boolean);
begin
if Assigned(ListView1.Selected) then
begin
GroupBox1.Caption := '【' + Item.Caption + '】' + Item.SubItems.Strings[0] + '的密码';
Label3.Caption := '要更改' + GroupBox1.Caption;
OldItem := Item;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -