?? usermanageunit.pas
字號:
unit UserManageUnit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, CheckLst, ComCtrls, ExtCtrls;
type intptr = record
id: integer; //用戶編號
qx: int64; //用戶權限
end;
type
TUserManageForm = class(TForm)
Panel1: TPanel;
man: TTreeView;
qx: TCheckListBox;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
BitBtn3: TBitBtn;
BitBtn4: TBitBtn;
Panel2: TPanel;
procedure BitBtn1Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure BitBtn3Click(Sender: TObject);
procedure manChange(Sender: TObject; Node: TTreeNode);
procedure BitBtn4Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
UserManageForm: TUserManageForm;
implementation
uses Udm, NewUserUnit;
{$R *.dfm}
procedure TUserManageForm.BitBtn1Click(Sender: TObject);
{增加新用戶}
var newnode: Ttreenode;
ptr: ^intptr;
i: integer;
begin
adodm.Tuser.Append;
Application.CreateForm(TNewUser, NewUser); //彈出新增用戶的窗體
i := NewUser.ShowModal;
NewUser.Free;
if i = mrok then
begin
adodm.Tuser.Last; //指針指向最后一個用戶記錄
newnode := TTreeNode.Create(man.Items); //新添加的用戶,加入到TTreeView控件中
new(ptr);
ptr.id := adodm.tuser.fieldbyname('用戶編號').AsInteger;
ptr.qx := adodm.tuser.fieldbyname('用戶權限').AsInteger;
man.Items.AddObject(newnode, adodm.tuser.fieldbyname('用戶權限').asstring, ptr);
newnode.Free;
end;
end;
procedure TUserManageForm.FormShow(Sender: TObject);
{取得數據庫中相應的用戶和其權限,然后進行相應的操作}
var newnode: Ttreenode;
ptr: ^intptr; //定義用戶信息指針
begin
man.Items.Clear; //清空用戶列表
adodm.tuser.Close;
adodm.tuser.Open;
adodm.tuser.First;
newnode := TTreeNode.Create(man.Items);
while not adodm.tuser.Eof do //循環讀取出所有的用戶信息
begin
new(ptr);
ptr.id := adodm.tuser.fieldbyname('用戶編號').AsInteger;
ptr.qx := adodm.tuser.fieldbyname('用戶權限').AsInteger;
man.Items.AddObject(newnode, adodm.tuser.fieldbyname('操作員').asstring, ptr);
adodm.tuser.Next;
end;
newnode.Free;
end;
procedure TUserManageForm.BitBtn2Click(Sender: TObject);
{刪除特定的用戶}
begin
if adodm.tuser.Locate('用戶編號', intptr(man.Selected.Data^).id, []) then
begin
if messagedlg('真的要刪除此用戶嗎?', mtwarning, [mbyes, mbno], 0) = mryes then
adodm.tuser.delete; //刪除當前用戶
end
else
showmessage('在數據庫中沒有找到該用戶的信息,可能已經被刪除了!');
man.Selected.Delete;
end;
procedure TUserManageForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
action := cafree;
end;
procedure TUserManageForm.BitBtn3Click(Sender: TObject);
{賦予用戶相應的權限}
var i: integer; a: int64;
begin
a := 0;
for i := 0 to qx.Items.Count - 1 do
if qx.Checked[i] then
a := a or (1 shl i);
a := a shl 10;
a := a xor 1234567890;
if adodm.tuser.Locate('用戶編號', intptr(man.Selected.Data^).id, []) then
begin
adodm.tuser.Edit; //用戶數據表進入可以編輯狀態
adodm.tuser.FieldByName('用戶權限').Asstring := inttostr(a);
adodm.tuser.Post;
intptr(man.Selected.Data^).qx := a;
end
else
showmessage('在數據庫中沒有找到該用戶的信息,請重新錄入信息!');
end;
procedure TUserManageForm.manChange(Sender: TObject; Node: TTreeNode);
var a: int64; i: integer;
begin
//對于不同的用戶,在右邊的列表框中顯示不同內容
a := intptr(node.Data^).qx;
a := a xor 1234567890;
a := a shr 10;
for i := 0 to qx.Items.Count - 1 do //共有6 種權限
if ((1 shl i) and a) <> 0 then
qx.Checked[i] := true
else
qx.Checked[i] := false;
end;
procedure TUserManageForm.BitBtn4Click(Sender: TObject);
begin
ModalResult := mrCancel;
end;
end.
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -