📄 uadmin.pas
字号:
unit uAdmin;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, XPMenu, StdCtrls, Grids, DBGrids, DB, ADODB, DBCtrls, Mask,
DBGridEh;
type
TfrmAdmin = class(TForm)
lbladmin: TLabel;
lbluid: TLabel;
lblpwd: TLabel;
lblsys: TLabel;
lbldes: TLabel;
deUid: TDBEdit;
dePwd: TDBEdit;
deDes: TDBEdit;
dbSys: TDBComboBox;
btnEdit: TButton;
btnAdd: TButton;
btnDel: TButton;
btnTrs: TButton;
btnClose: TButton;
dgAdmin: TDBGridEh;
dsadmin: TDataSource;
aqAdmin: TADOQuery;
aqAdminuid: TWideStringField;
aqAdminpwd: TWideStringField;
aqAdminsys: TBooleanField;
aqAdmindes: TWideStringField;
procedure btnEditClick(Sender: TObject);
procedure btnAddClick(Sender: TObject);
procedure btnDelClick(Sender: TObject);
procedure btnTrsClick(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);
private
{ Private declarations }
procedure SetState(aState: Boolean = true);
public
{ Public declarations }
end;
var
frmAdmin: TfrmAdmin;
implementation
uses udata;
var
aqCheck: TADOQuery;
{$R *.dfm}
procedure TfrmAdmin.FormCreate(Sender: TObject);
begin
SetState(true);
dmPer.OpenQuery(aqAdmin, 'select * from admin');
aqCheck := TADOQuery.Create(self);
end;
procedure TfrmAdmin.SetState(aState: Boolean);
begin
deUid.ReadOnly := aState;
dePwd.ReadOnly := aState;
dbSys.ReadOnly := aState;
deDes.ReadOnly := aState;
if aState = true then
begin
dgAdmin.Enabled := true;
btnEdit.Caption := '编 辑';
btnAdd.Caption := '添 加';
btnDel.Visible := true;
deUid.Color := clSkyBlue;
dePwd.Color := clSkyBlue;
dbSys.Color := clSkyBlue;
deDes.Color := clSkyBlue;
end
else
begin
dgAdmin.Enabled := false;
if aqAdmin.State = dsEdit then
btnEdit.Caption := '确 定'
else
btnEdit.Caption := '提 交';
btnAdd.Caption := '取 消';
deUid.SetFocus;
btnDel.Visible := false;
deUid.Color := clWindow;
dePwd.Color := clWindow;
dbSys.Color := clWindow;
deDes.Color := clWindow;
end;
end;
procedure TfrmAdmin.btnEditClick(Sender: TObject);
var
dState: Boolean;
begin
dState := false;
if btnEdit.Caption = '编 辑' then
begin
aqAdmin.Edit;
SetState(false);
dmPer.OpenQuery(aqCheck, 'select count(id) as acount from admin');
if aqCheck.FieldByName('acount').AsInteger = 1 then
begin
dbSys.ReadOnly := true;
dbSys.Color := clSkyBlue;
end;
end
else
begin
if deUid.Text = '' then
begin
MessageBox(self.Handle, '请输入账号!', '提示', mb_IconInformation + mb_Ok);
deUid.SetFocus;
Abort;
end;
if aqAdmin.State = dsInsert then
begin
dmPer.OpenQuery(aqCheck, 'select uid from admin where uid=' + QuotedStr(deUid.Text));
if not aqCheck.Eof then
begin
MessageBox(self.Handle, '此账号已存在,请另输入!', '提示', mb_IconInformation + mb_Ok);
deUid.SetFocus;
Abort;
end;
end;
try
if aqAdmin.State = dsInsert then
dState := true;
aqAdmin.Post;
aqAdmin.UpdateBatch();
if dState = true then
begin
aqAdmin.Requery();
aqAdmin.Last;
end;
SetState(true);
except
MessageBox(self.Handle, '账号更新失败!', '提示', mb_IconInformation + mb_Ok);
Exit;
end;
end;
end;
procedure TfrmAdmin.btnAddClick(Sender: TObject);
begin
if btnadd.Caption = '添 加' then
begin
aqadmin.Append;
SetState(false);
end
else
begin
aqAdmin.Cancel;
SetState(true);
end;
end;
procedure TfrmAdmin.btnDelClick(Sender: TObject);
begin
dmPer.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
aqAdmin.Delete;
aqAdmin.UpdateBatch();
aqCheck.Requery();
if aqCheck.FieldByName('acount').AsInteger = 1 then
dmPer.ExecQuery(aqCheck, 'update admin set sys=true');
aqAdmin.Requery();
end;
end
else
begin
MessageBox(self.Handle, '只有一个帐号,不能删除!', '提示', mb_IconInformation + mb_Ok);
dmPer.ExecQuery(aqCheck, 'update admin set sys=true');
aqAdmin.Requery();
end;
end;
procedure TfrmAdmin.btnTrsClick(Sender: TObject);
begin
if btntrs.Caption = '半透明' then
begin
btntrs.Caption := '还 原';
self.AlphaBlend := true;
self.AlphaBlendValue := 125;
end
else
begin
btntrs.Caption := '半透明';
self.AlphaBlend := false;
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
if Text = '是' then
Sender.AsBoolean := true
else
Sender.AsBoolean := false;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -