⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 u_pwdset.pas

📁 这是一个60吨地磅称量系统
💻 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 + -