📄 u_pwdset.pas
字号:
unit u_pwdset;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Menus, Grids, DBGrids, Db, DBTables;
type
Tf_pwdset = class(TForm)
MainMenu1: TMainMenu;
add: TMenuItem;
cancel: TMenuItem;
ok: TMenuItem;
rtn: TMenuItem;
del: TMenuItem;
Table1: TTable;
DataSource1: TDataSource;
DBGrid1: TDBGrid;
StringGrid1: TStringGrid;
procedure addClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure cancelClick(Sender: TObject);
procedure okClick(Sender: TObject);
procedure rtnClick(Sender: TObject);
procedure delClick(Sender: TObject);
procedure DBGrid1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure StringGrid1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure ChkRight;
private
{ Private declarations }
public
{ Public declarations }
end;
var
f_pwdset: Tf_pwdset;
Modified: Boolean;
implementation
uses U_UTIL, U_ComTest, U_PWDRGT;
{$R *.DFM}
procedure Tf_pwdset.FormShow(Sender: TObject);
var
i: Integer;
begin
DBGrid1.Height:=F_ComTest.Height-40;
DBGrid1.Top:=10;
DBGrid1.Left:=(F_ComTest.Width-DBGrid1.Width-StringGrid1.Width) div 3;
StringGrid1.Top:=10;
StringGrid1.Left:=DBGrid1.Left*2+DBGrid1.Width;
StringGrid1.RowCount:=F_PWDRGT.RightCount+1;;
StringGrid1.Cells[0,0]:='功能';
StringGrid1.Cells[1,0]:='权限';
for i:=1 to F_PWDRGT.RightCount do
begin
StringGrid1.Cells[0,i]:=F_PWDRGT.RightName[i];
StringGrid1.Cells[1,i]:=IntToStr(F_PWDRGT.Right[i]);
end;
Table1.Close;
Table1.TableName:='TEMP.DBF';
U_DelFile('TEMP.DBF',False);
if not U_CopyFile('C:\WINDOWS\SYSTEM\'+'PASSWORD.DBF','TEMP.DBF',False) then
begin
ShowMessage('密码存档失败');
Close;
end;
//Table1.Open;
Modified:=False;
end;
procedure Tf_pwdset.addClick(Sender: TObject);
begin
Modified:=True;
Table1.Append;
end;
procedure Tf_pwdset.cancelClick(Sender: TObject);
begin
Modified:=False;
Table1.Close;
U_DelFile('TEMP.DBF',False);
if not U_CopyFile('C:\WINDOWS\SYSTEM\'+'PASSWORD.DBF','TEMP.DBF',False) then
begin
ShowMessage('读取密码失败');
Exit;
end;
Table1.Open;
Modified:=False;
end;
procedure Tf_pwdset.okClick(Sender: TObject);
begin
Table1.Edit;
Table1.Post;
Table1.Close;
ChkRight;
U_DelFile('C:\WINDOWS\SYSTEM\'+'PASSWORD.DBF',False);
if not U_CopyFile('TEMP.DBF','C:\WINDOWS\SYSTEM\'+'PASSWORD.DBF',False) then
begin
ShowMessage('记录密码失败');
Exit;
end
else
begin
Modified:=False;
end;
Table1.Open;
end;
procedure Tf_pwdset.rtnClick(Sender: TObject);
begin
if Modified then
begin
if MessageDlg('密码已修改过,尚未存盘,确定要离开吗?',mtWarning,[mbYes,mbNo],0)<>mrYes then Exit;
end;
Table1.Close;
Close;
end;
procedure Tf_pwdset.delClick(Sender: TObject);
begin
if MessageDlg('删除资料'+ '【'+Table1.FieldByName('NAME').asString+'】', mtConfirmation,[mbYES,mbNO], 0)=mrNO then Exit;
Table1.Delete;
Modified:=True;
end;
procedure Tf_pwdset.DBGrid1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
Modified:=True;
end;
procedure Tf_pwdset.StringGrid1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
Modified:=True;
end;
procedure TF_PWDSET.ChkRight;
var
Chk: Integer;
begin
with Table1 do
begin
Open;
First;
while not EOF do
begin
Chk:=FieldByName('RIGHT').asInteger;
if Chk>255 then Chk:=255
else if Chk<0 then Chk:=0;
Edit;
FieldByName('RIGHT').asInteger:=Chk;
Post;
Next;
end;
Close;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -