📄 user.pas
字号:
unit user;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, base, ExtCtrls, SUIForm, Grids, DBGridEh, SUIImagePanel,
StdCtrls, SUIButton, SUIEdit, DB, ADODB, SUIDBCtrls;
type
Tfrmuser = class(Tbaseform)
pnl: TsuiPanel;
dguser: TDBGridEh;
edtuser: TsuiEdit;
edtpass: TsuiEdit;
btnnew: TsuiButton;
btndel: TsuiButton;
Label1: TLabel;
Label2: TLabel;
adquser: TADOQuery;
dsuser: TDataSource;
cbsystem: TsuiDBCheckBox;
cbcode: TsuiDBCheckBox;
cbstu: TsuiDBCheckBox;
cbstatic: TsuiDBCheckBox;
cbreport: TsuiDBCheckBox;
btnedit: TsuiButton;
btnsave: TsuiButton;
procedure FormCreate(Sender: TObject);
procedure btnnewClick(Sender: TObject);
procedure btndelClick(Sender: TObject);
procedure btnsaveClick(Sender: TObject);
procedure btneditClick(Sender: TObject);
private
editmodal:string;
procedure iniform;
{ Private declarations }
public
{ Public declarations }
end;
var
frmuser: Tfrmuser;
implementation
uses pub, umain;
{$R *.dfm}
procedure Tfrmuser.FormCreate(Sender: TObject);
begin
inherited;
pub.showrecord(adquser,'*','users','id');
iniform;
end;
procedure tfrmuser.iniform;
begin
btnnew.Enabled :=true;
btndel.Enabled :=true;
btnedit.Enabled :=true;
btnsave.Enabled :=false;
end;
procedure Tfrmuser.btnnewClick(Sender: TObject);
begin
inherited;
edtuser.Clear;
edtpass.Clear;
cbsystem.Checked :=false;
cbcode.Checked :=false;
cbstu.Checked :=false;
cbstatic.Checked :=false;
cbreport.Checked :=false;
edtuser.SetFocus;
editmodal:='new';
btndel.Enabled :=false;
btnedit.Enabled :=false;
btnsave.Enabled :=true;
end;
procedure Tfrmuser.btndelClick(Sender: TObject);
begin
inherited;
if dguser.Fields[0].AsString='admin' then
begin
application.MessageBox('管理员不可删除!','提示',mb_ok+mb_iconinformation);
exit;
end;
if application.MessageBox('确定删除这条记录?','提示',mb_yesno+mb_iconquestion)=idyes then
adquser.Delete;
end;
procedure Tfrmuser.btnsaveClick(Sender: TObject);
var vsystem,vcode,vstu,vstatic,vreport:integer;
begin
inherited;
if (trim(edtuser.Text)='')or(trim(edtpass.Text)='') then
begin
application.MessageBox('用户名密码均不能为空!','提示',mb_ok+mb_iconinformation);
exit;
end;
vsystem:=0;
vcode:=0;
vstu:=0;
vstatic:=0;
vreport:=0;
if cbsystem.Checked then
vsystem:=1;
if cbcode.Checked then
vcode:=1;
if cbstu.Checked then
vstu:=1;
if cbstatic.Checked then
vstatic:=1;
if cbreport.Checked then
vreport:=1;
frmmain.adc.BeginTrans;
if editmodal='new' then
begin
try
with adquser do
begin
sql.Clear;
sql.Add('insert into users (username,userpassword,system,code,stu,static,report) values (:v1,:v2,:v3,:v4,:v5,:v6,:v7)');
parameters.ParamByName('v1').Value :=trim(edtuser.Text);
parameters.ParamByName('v2').Value :=trim(edtpass.Text);
parameters.ParamByName('v3').Value :=vsystem;
parameters.ParamByName('v4').Value :=vcode;
parameters.ParamByName('v5').Value :=vstu;
parameters.ParamByName('v6').Value :=vstatic;
parameters.ParamByName('v7').Value :=vreport;
execsql;
end;
frmmain.adc.CommitTrans;
application.MessageBox('记录保存成功!','提示',mb_ok+mb_iconinformation);
pub.showrecord(adquser,'*','users','id');
iniform;
except
frmmain.adc.RollbackTrans;
raise;
application.MessageBox('记录保存失败!','警告',mb_ok+mb_iconwarning);
pub.showrecord(adquser,'*','users','id');
end;
end;
if editmodal='edit' then
begin
try
with adquser do
begin
sql.Clear;
sql.Add('update users set userpassword=:v1,system=:v2,code=:v3,stu=:v4,static=:v5,report=:v6 where id=:v7');
parameters.ParamByName('v1').Value :=trim(edtpass.Text);
parameters.ParamByName('v2').Value :=vsystem;
parameters.ParamByName('v3').Value :=vcode;
parameters.ParamByName('v4').Value :=vstu;
parameters.ParamByName('v5').Value :=vstatic;
parameters.ParamByName('v6').Value :=vreport;
parameters.ParamByName('v7').Value :=adquser.fieldbyname('id').AsInteger;
execsql;
end;
frmmain.adc.CommitTrans;
application.MessageBox('修改成功!','提示',mb_ok+mb_iconinformation);
pub.showrecord(adquser,'*','users','id');
iniform;
except
frmmain.adc.RollbackTrans;
raise;
application.MessageBox('修改失败!','警告',mb_ok+mb_iconwarning);
end;
end;
end;
procedure Tfrmuser.btneditClick(Sender: TObject);
begin
inherited;
btnnew.Enabled :=false;
btndel.Enabled :=false;
btnsave.Enabled :=true;
edtuser.ReadOnly :=true;
editmodal:='edit';
edtuser.Text :=dguser.Fields[0].AsString;
edtpass.Text :=dguser.Fields[1].AsString;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -