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

📄 user.pas

📁 Delphi+SQL的学生信息管理系统
💻 PAS
字号:
unit user;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DB, DBTables, DBCtrls, StdCtrls, ExtCtrls, Mask, Grids, DBGrids;

type
  Tfrmuser = class(TForm)
    dbguser: TDBGrid;
    GroupBox1: TGroupBox;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    dbmDesc: TDBMemo;
    Label5: TLabel;
    dbeID: TDBEdit;
    dbename: TDBEdit;
    dbepassword: TDBEdit;
    dbetype: TDBEdit;
    Panel1: TPanel;
    Button1: TButton;
    dbnuser: TDBNavigator;
    tbluser: TTable;
    dsuser: TDataSource;
    tblvaild: TTable;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormShow(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure tbluserBeforeDelete(DataSet: TDataSet);
    procedure dbnuserClick(Sender: TObject; Button: TNavigateBtn);
    procedure tbluserBeforePost(DataSet: TDataSet);
    procedure tbluserAfterScroll(DataSet: TDataSet);
  private
   procedure ToggleMode;
    { Private declarations }
  public
    { Public declarations }
  end;

var
  frmuser: Tfrmuser;

implementation

{$R *.dfm}

procedure Tfrmuser.FormClose(Sender: TObject; var Action: TCloseAction);
begin
     tbluser.Active:=false;
end;

procedure Tfrmuser.FormShow(Sender: TObject);
begin
     tbluser.Active:=true;
end;
procedure Tfrmuser.ToggleMode;
  procedure enableInput(enabled:boolean);
  begin
  dbguser.Enabled:=not enabled;
  dbeID.Enabled:=enabled;
  dbename.Enabled:=enabled;
  dbepassword.Enabled:=enabled;
  dbetype.Enabled:=enabled;
  dbmDesc.Enabled:=enabled;
  end;
  begin
  case tbluser.State of
       dsedit,dsinsert:
    begin
     enableInput(true);
     dbnuser.VisibleButtons:=[nbpost,nbcancel];
     dbeID.SetFocus;
     end;
  else
  begin
   enableInput(false);
   dbnuser.VisibleButtons:=[nbfirst,nbprior,nbnext,nblast,nbinsert,nbdelete,nbedit,nbpost,nbcancel,nbrefresh];
  end;
end;
end;
procedure Tfrmuser.Button1Click(Sender: TObject);
begin
close;
end;

procedure Tfrmuser.tbluserBeforeDelete(DataSet: TDataSet);
var str:string;
begin
   str:=format('确定要删除“%S”这个用户的吗?'#13,[tbluser['name']]);
   if messagedlg(str,mtconfirmation,[mbyes,mbno],0)<>mryes then
    abort;
end;
procedure Tfrmuser.dbnuserClick(Sender: TObject; Button: TNavigateBtn);
begin
  ToggleMode;
end;



procedure Tfrmuser.tbluserBeforePost(DataSet: TDataSet);
   procedure checkfield(fieldname,fieldDesc:string;dbtext:tcustomedit;notempty:boolean);
   begin
    dbtext.Text:=trim(dbtext.Text) ;
    dbtext.Text:=stringreplace(dbtext.Text,'''','',[rfreplaceall]);
    dbtext.Text:=stringreplace(dbtext.Text,'','',[rfreplaceall]);
    if notempty and (dbtext.Text='') then
     begin
     showmessagefmt('"%S"不能为空,请输入足够的信息',[fieldDesc]);
     dbtext.SetFocus;
     abort;
     end
     else
     tbluser.FieldByName(fieldname).AsString:=dbtext.Text;
    end;
    function  vaildID :boolean;
    var str:string;
    begin
     result:=true;
     tblvaild.Active:=false;
     tblvaild.TableName:='users';
     tblvaild.Filter:='userID='+dbeID.Text;
     tblvaild.filtered:=true;
     tblvaild.Active:=true;
     if not tblvaild.Eof then
     begin
      str:=format('"%S"用户号的用户已经存在,请从新输入'#13,[tblvaild['userID']]);
      str:=str+format( '用户号为:“%S”'#13,[tblvaild['userID']]);
      str:=str+format('用户名为:“%S”'#13,[tblvaild['name']]);
      str:=str+format('密码为:“%S”'#13,[tblvaild['[passwd']]);
      showmessage(str);
      dbeID.SetFocus;
      result:=false;
     end;
   tblvaild.Active:=false;
   end;
begin
     checkfield('userID','用户号',dbeID,true);
     checkfield('name','用户名',dbename,true);
     checkfield('passwd','用户名',dbepassword,true);
     checkfield('type','类型号',dbetype,true);
     checkfield('description','说明',dbmDesc,true);
     if dbeID.Modified and not vaildID then
      abort;
      
end;

procedure Tfrmuser.tbluserAfterScroll(DataSet: TDataSet);
begin
togglemode;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -