📄 uadmin.pas
字号:
unit uAdmin;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids, DBGrids, DB, ADODB, DBCtrls, Mask,DBGridEh,
uModalbase, Buttons, ExtCtrls;
type
TfrmAdmin = class(TfrmModalBase)
dsadmin: TDataSource;
aqAdmin: TADOQuery;
aqAdminuid: TWideStringField;
aqAdminpwd: TWideStringField;
aqAdminsys: TBooleanField;
aqAdmindes: TWideStringField;
Panel1: TPanel;
dgAdmin: TDBGridEh;
Panel2: TPanel;
lbluid: TLabel;
lblpwd: TLabel;
lblsys: TLabel;
deUid: TDBEdit;
dePwd: TDBEdit;
dbSys: TDBComboBox;
lbldes: TLabel;
deDes: TDBEdit;
btnAdd: TBitBtn;
btnEdit: TBitBtn;
btnDel: TBitBtn;
btnClose: TBitBtn;
Panel3: TPanel;
lbladmin: TLabel;
procedure btnEditClick(Sender: TObject);
procedure btnAddClick(Sender: TObject);
procedure btnDelClick(Sender: TObject);
procedure btnCloseClick(Sender: TObject);
procedure aqAdminsysGetText(Sender: TField; var Text: String;
DisplayText: Boolean);
procedure aqAdminsysSetText(Sender: TField; const Text: String);
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
{ Private declarations }
procedure SetState(ViewState: Boolean);
public
{ Public declarations }
end;
var
frmAdmin: TfrmAdmin;
implementation
uses uData, uGlobal;
var
aqCheck: TADOQuery;
{$R *.dfm}
procedure TfrmAdmin.FormCreate(Sender: TObject);
begin
Log.Write('进入管理员信息模块');
aqCheck := TADOQuery.Create(Self);
SetState(True);
DM.OpenQuery(aqAdmin, 'select * from admin');
end;
procedure TfrmAdmin.FormDestroy(Sender: TObject);
begin
aqCheck.Free;
end;
procedure TfrmAdmin.SetState(ViewState: Boolean);
var
sColor: TColor;
begin
deUid.ReadOnly := ViewState;
dePwd.ReadOnly := ViewState;
dbSys.ReadOnly := ViewState;
deDes.ReadOnly := ViewState;
dgAdmin.Enabled := ViewState;
btnDel.Visible := ViewState;
if ViewState then
begin
btnEdit.Caption := '编 辑';
btnAdd.Caption := '添 加';
sColor := ViewColor;
end
else
begin
if aqAdmin.State = dsEdit then
btnEdit.Caption := '确 定'
else btnEdit.Caption := '提 交';
btnAdd.Caption := '取 消';
deUid.SetFocus;
sColor := clWindow;
end;
deUid.Color := sColor;
dePwd.Color := sColor;
dbSys.Color := sColor;
deDes.Color := sColor;
end;
procedure TfrmAdmin.btnEditClick(Sender: TObject);
begin
if btnEdit.Caption = '编 辑' then
begin
aqAdmin.Edit;
SetState(False);
DM.OpenQuery(aqCheck, 'select count(id) as acount from admin');
if aqCheck.FieldByName('acount').AsInteger = 1 then
begin
dbSys.ReadOnly := True;
dbSys.Color := ViewColor;
end;
end
else
begin
if deUid.Text = '' then
begin
MessageBox(Handle, '请输入账号!', '提示', mb_IconInformation + mb_Ok);
deUid.SetFocus;
Abort;
end;
if aqAdmin.State = dsInsert then
begin
DM.OpenQuery(aqCheck, 'select uid from admin where uid=' + QuotedStr(deUid.Text));
if not aqCheck.Eof then
begin
MessageBox(Handle, '此账号已存在,请另输入!', '提示', mb_IconInformation + mb_Ok);
deUid.SetFocus;
Abort;
end;
end;
try
if aqAdmin.State = dsInsert then
Log.Write('添加账号' + aqAdmin.FieldByName('uid').AsString)
else
Log.Write('更新账号' + aqAdmin.FieldByName('uid').AsString);
aqAdmin.UpdateBatch();
SetState(True);
except
MessageBox(Handle, '账号更新失败!', '提示', mb_IconInformation + mb_Ok);
end;
end;
end;
procedure TfrmAdmin.btnAddClick(Sender: TObject);
begin
if btnAdd.Caption = '添 加' then
begin
aqadmin.Append;
SetState(False);
end
else
begin
aqAdmin.CancelBatch();
SetState(True);
end;
end;
procedure TfrmAdmin.btnDelClick(Sender: TObject);
begin
DM.OpenQuery(aqCheck, 'select count(id) as acount from admin');
if aqCheck.FieldByName('acount').AsInteger > 1 then
begin
if MessageBox(handle, '真的要删除此帐号么?', '提示', mb_IconQuestion + mb_OkCancel) = idOk then
begin
Log.Write('删除账号' + aqAdmin.FieldByName('uid').AsString);
aqAdmin.Delete;
aqAdmin.UpdateBatch();
if aqCheck.FieldByName('acount').AsInteger = 1 then
DM.ExecSQL('update admin set sys=True');
end;
end
else
begin
MessageBox(Handle, '只有一个帐号,不能删除!', '提示', mb_IconInformation + mb_Ok);
DM.ExecSQL('update admin set sys=True');
aqAdmin.Requery();
end;
end;
procedure TfrmAdmin.btnCloseClick(Sender: TObject);
begin
Close();
end;
procedure TfrmAdmin.aqAdminsysGetText(Sender: TField; var Text: String;
DisplayText: Boolean);
begin
if Sender.AsBoolean = True then
Text := '是'
else Text := '否';
end;
procedure TfrmAdmin.aqAdminsysSetText(Sender: TField; const Text: String);
begin
Sender.AsBoolean := Text = '是';
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -