📄 formusermanage.pas
字号:
unit FormUserManage;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, DBTables, StdCtrls, Grids, DBGrids, DBCtrls, ExtCtrls, Mask;
type
TfrmUserManage = class(TForm)
dbgUsers: TDBGrid;
dsUsers: TDataSource;
tblUsers: TTable;
dbnUsers: TDBNavigator;
btnQuit: TButton;
GroupBox1: TGroupBox;
dbeUserID: TDBEdit;
dbePasswd: TDBEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
dbeUserName: TDBEdit;
Label5: TLabel;
Label6: TLabel;
dbmDesc: TDBMemo;
edtPasswd: TEdit;
procedure FormShow(Sender: TObject);
procedure btnQuitClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure tblUsersAfterScroll(DataSet: TDataSet);
procedure dbnUsersClick(Sender: TObject; Button: TNavigateBtn);
procedure tblUsersBeforeDelete(DataSet: TDataSet);
procedure tblUsersBeforePost(DataSet: TDataSet);
private
procedure ToggleMode;
public
{ Public declarations }
end;
var
frmUserManage: TfrmUserManage;
implementation
{$R *.dfm}
procedure TfrmUserManage.FormShow(Sender: TObject);
begin
tblUsers.Active := true;
ToggleMode;
end;
procedure TfrmUserManage.btnQuitClick(Sender: TObject);
begin
close;
end;
procedure TfrmUserManage.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
tblUsers.Active := false;
end;
procedure TfrmUserManage.tblUsersAfterScroll(DataSet: TDataSet);
begin
ToggleMode;
end;
procedure TfrmUserManage.dbnUsersClick(Sender: TObject;
Button: TNavigateBtn);
begin
ToggleMode;
end;
procedure TfrmUserManage.ToggleMode;
procedure EnableInput(Enabled: Boolean);
begin
dbgUsers.Enabled := not Enabled;
dbeUserID.Enabled := Enabled;
dbePasswd.Enabled := Enabled;
edtPasswd.Enabled := Enabled;
dbeUserName.Enabled := Enabled;
dbmDesc.Enabled := Enabled;
end;
begin
case tblUsers.State of
dsInsert, dsEdit:
begin
EnableInput(true);
dbnUsers.VisibleButtons := [nbPost, nbCancel];
dbeUserID.SetFocus;
end;
else
EnableInput(false);
dbnUsers.VisibleButtons := [nbFirst, nbPrior, nbNext, nbLast,
nbInsert, nbDelete, nbEdit, nbPost, nbCancel, nbRefresh];
end;
end;
procedure TfrmUserManage.tblUsersBeforeDelete(DataSet: TDataSet);
var
strMsg: string;
begin
strMsg := Format('确定要删除用户"%s(%s)"吗?', [tblUsers['UsersID'], tblUsers['UsersName']]);
if MessageDlg(strMsg, mtConfirmation, [mbYes, mbNo], 0) <> mrYes then
Abort;
end;
procedure TfrmUserManage.tblUsersBeforePost(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
tblUsers.FieldByName(FieldName).AsString := dbText.Text;
end;
begin
CheckField('UserID', '用户名', dbeUserID, true);
CheckField('Passwd', '密码', dbePasswd, true);
edtPasswd.Text := Trim(edtPasswd.Text);
edtPasswd.Text := StringReplace(edtPasswd.Text, '''', '', [rfReplaceAll]);
edtPasswd.Text := StringReplace(edtPasswd.Text, ' ', '', [rfReplaceAll]);
if edtPasswd.Text <> dbePasswd.Text then
begin
ShowMessage('两次输入的密码不相同,请重新输入!');
dbePasswd.SetFocus;
Abort;
end;
CheckField('UserName', '用户姓名', dbeUserName, true);
CheckField('Description', '说明', dbmDesc, false);
Abort;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -