📄 user_pas.pas
字号:
unit user_pas;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Buttons, Grids, DBGrids, RXCtrls, ExtCtrls, ImgList, ComCtrls;
type
Tuser = class(TForm)
Panel12: TPanel;
BitBtn1: TBitBtn;
BitBtn5: TBitBtn;
BitBtn2: TBitBtn;
BitBtn6: TBitBtn;
BitBtn3: TBitBtn;
ImageList1: TImageList;
Panel3: TPanel;
Panel14: TPanel;
DBGrid2: TDBGrid;
GroupBox1: TGroupBox;
CheckBox1: TCheckBox;
CheckBox2: TCheckBox;
CheckBox3: TCheckBox;
CheckBox4: TCheckBox;
CheckBox5: TCheckBox;
CheckBox6: TCheckBox;
CheckBox7: TCheckBox;
CheckBox8: TCheckBox;
CheckBox9: TCheckBox;
CheckBox10: TCheckBox;
CheckBox19: TCheckBox;
CheckBox18: TCheckBox;
CheckBox17: TCheckBox;
CheckBox16: TCheckBox;
CheckBox20: TCheckBox;
CheckBox21: TCheckBox;
CheckBox22: TCheckBox;
CheckBox23: TCheckBox;
BitBtn9: TBitBtn;
CheckBox11: TCheckBox;
procedure TreeView1Click(Sender: TObject);
procedure DBGrid2CellClick(Column: TColumn);
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure BitBtn6Click(Sender: TObject);
procedure BitBtn5Click(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure Edit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure Edit2KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure FormActivate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure DBGrid2DblClick(Sender: TObject);
procedure DBGrid2KeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure CheckBox1Click(Sender: TObject);
procedure CheckBox7Click(Sender: TObject);
procedure CheckBox13Click(Sender: TObject);
procedure CheckBox20Click(Sender: TObject);
procedure CheckBox3Click(Sender: TObject);
procedure CheckBox5Click(Sender: TObject);
procedure CheckBox4Click(Sender: TObject);
procedure CheckBox8Click(Sender: TObject);
procedure CheckBox9Click(Sender: TObject);
procedure CheckBox10Click(Sender: TObject);
procedure CheckBox11Click(Sender: TObject);
procedure CheckBox14Click(Sender: TObject);
procedure CheckBox16Click(Sender: TObject);
procedure CheckBox18Click(Sender: TObject);
procedure CheckBox12Click(Sender: TObject);
procedure CheckBox15Click(Sender: TObject);
procedure CheckBox17Click(Sender: TObject);
procedure CheckBox19Click(Sender: TObject);
procedure CheckBox6Click(Sender: TObject);
procedure CheckBox21Click(Sender: TObject);
procedure CheckBox23Click(Sender: TObject);
procedure CheckBox22Click(Sender: TObject);
procedure DBGrid2ColEnter(Sender: TObject);
procedure BitBtn9Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
procedure onsee(s: string);
// procedure onsee_add(s:string);
function onadd:string;
function encrypt(const s : string ):string;
function decrypt(const s: string ):string;
procedure check_true(flag:boolean);
{ Public declarations }
end;
var
user: Tuser;
implementation
uses dm_user_pas,menu,add_user_pas;
const
c1=45395;
c2=56569;
{$R *.DFM}
procedure tuser.check_true(flag:boolean);
begin
{checkbox1.Enabled:=flag;
checkbox2.Enabled:=flag;
checkbox3.Enabled:=flag;
checkbox4.Enabled:=flag;
checkbox5.Enabled:=flag;
checkbox6.Enabled:=flag;
checkbox7.Enabled:=flag;
checkbox8.Enabled:=flag;
checkbox9.Enabled:=flag;
checkbox10.Enabled:=flag;
checkbox19.Enabled:=flag;
checkbox16.Enabled:=flag;
checkbox17.Enabled:=flag;
checkbox18.Enabled:=flag;
checkbox20.Enabled:=flag;
checkbox11.Enabled:=flag;
checkbox21.Enabled:=flag;
checkbox22.Enabled:=flag;
checkbox23.Enabled:=flag; }
end;
function Tuser.encrypt(const s: string ):string;
var
I: byte;
key: word;
begin
key:=65535;
Result:=s;
for i:=1 to length(s) do
begin
// result[i]:=char(byte(s[i]) xor (key shr 8));
result[i]:=char(((byte(s[i])) xor (key shr 12))+39);
// key:=(byte(result[i])+key)*c1+c2;
end;
end;
function Tuser.decrypt(const s: string ):string;
var
I: byte;
key: word;
begin
key:=65535;
Result:=s;
for i:=1 to length(s) do
begin
result[i]:=char((byte(s[i])-39) xor (key shr 12));
// key:=(byte(s[i])+key)*c1+c2;
end;
end;
procedure Tuser.onsee(s: string);
var
i: integer;
begin
{if s='0' then
begin
with treeview1 do
begin
for i:=0 to items.Count-1 do
begin
items.Item[i].ImageIndex:=0;
items.Item[i].StateIndex:=0;
items.Item[i].SelectedIndex:=0;
end;
end;
end
else
begin
for i:=0 to length(s)-1 do
begin
with treeview1 do
begin
if strtoint(copy(s,i+1,1))=1 then
begin
items.Item[i].ImageIndex:=1;
//showmessage(inttostr(i)) ;
items.Item[i].StateIndex:=1;
items.Item[i].SelectedIndex:=1;
end
else
begin
items.Item[i].ImageIndex:=0;
items.Item[i].StateIndex:=0;
items.Item[i].SelectedIndex:=0;
end;
end;
end;
end; }//目录树
if s='0' then
begin
with groupbox1 do
begin
for i:=0 to groupbox1.controlcount-1 do
begin
((controls[i]) as Tcheckbox).checked:=false;
controls[i].tag:=0;
end;
end;
end
else
begin
for i:=0 to length(s)-1 do
begin
with groupbox1 do
begin
if strtoint(copy(s,i+1,1))=1 then
((controls[i]) as Tcheckbox).checked:=true
else
((controls[i]) as Tcheckbox).checked:=false;
end;
end;
end;
end;
function Tuser.onadd:string;
var
i: integer;
s: string;
begin
{ s:='';
with treeview1 do
begin
for i:=0 to Items.Count-1 do
s:=s+inttostr(Items.Item[i].selectedindex);
end;
result:=s; }//目录树
s:='';
with groupbox1 do
with groupbox1 do
begin
for i:=0 to (controlcount-1) do
s:=s+inttostr(controls[i].tag);
end;
Application.MessageBox(pchar(s),'消息',MB_ICONINFORMATION);
result:=encrypt(s);
end;
procedure Tuser.TreeView1Click(Sender: TObject);
begin
{ if (treeview1.selected.Expanded=false) and (treeview1.selected.haschildren=false) then
begin
if (treeview1.Selected.ImageIndex=1) then
begin
treeview1.Selected.ImageIndex:=0;
treeview1.Selected.StateIndex:=0;
treeview1.Selected.SelectedIndex:=0;
end
else
begin
treeview1.Selected.ImageIndex:=1;
treeview1.Selected.StateIndex:=1;
treeview1.Selected.SelectedIndex:=1;
end;
end;
if (treeview1.selected.Expanded=false) and (treeview1.selected.haschildren=true) then
begin
if (treeview1.Selected.ImageIndex=1) then
begin
treeview1.Selected.ImageIndex:=0;
treeview1.Selected.StateIndex:=0;
treeview1.Selected.SelectedIndex:=0;
end
else
begin
treeview1.Selected.ImageIndex:=1;
treeview1.Selected.StateIndex:=1;
treeview1.Selected.SelectedIndex:=1;
end;
end;
if (treeview1.selected.Expanded=true) and (treeview1.selected.haschildren=true) then
begin
if (treeview1.Selected.ImageIndex=1) then
begin
treeview1.Selected.ImageIndex:=0;
treeview1.Selected.StateIndex:=0;
treeview1.Selected.SelectedIndex:=0;
end
else
begin
treeview1.Selected.ImageIndex:=1;
treeview1.Selected.StateIndex:=1;
treeview1.Selected.SelectedIndex:=1;
end;
end;
}
end;
procedure Tuser.DBGrid2CellClick(Column: TColumn);
var s:string;
ss:string;
begin
check_true(true);
s:=DM_user.T_user.fieldbyname('right').asstring;
s:=decrypt(s);
onsee(s);
//edit1.text:=DM_user.T_user.fieldbyname('username').asstring;
ss:=DM_user.T_user.fieldbyname('password').asstring;
//edit2.text:=ss;//decrypt(ss);
//edit3.text:=ss;//decrypt(ss);
check_true(false);
end;
procedure Tuser.BitBtn1Click(Sender: TObject);
var
s: string;
begin
add_user:=tadd_user.Create(self);
add_user.Caption:='增加用戶資訊';
s:='0';
add_user.Label4.Caption:=s;
//onsee_add(s);
add_user.ShowModal;
add_user.free;
//edit1.text:='';
//Edit2.Text:='';
//Edit3.Text:='';
//s:='0';
//onsee(s);
//with DM_user.t_User do
//begin
// append;
//end;
//edit1.setfocus;
//BitBtn1.Enabled:=false;
//BitBtn2.Enabled:=false;
end;
procedure Tuser.BitBtn2Click(Sender: TObject);
var s:string;
begin
if uppercase(DM_user.T_User.FieldByName('Username').asstring)=uppercase('Administrator') then
begin
Application.MessageBox('不能刪除管理員','消息',MB_ICONINFORMATION);
exit;
end
else
begin
if Application.MessageBox('確實要刪除該操作員嗎?','消息', MB_ICONINFORMATION+MB_OKCANCEL) = IDOK then
DM_user.T_User.delete;
end;
{s:=DM_user.T_User.fieldbyname('right').asstring;
s:=decrypt(s);
s:=trim(s);
if length(s)=0 then
s:='0';
onsee(s);
Edit1.Text:=DM_user.T_User.fieldbyname('Username').asstring;
}
end;
procedure Tuser.BitBtn6Click(Sender: TObject);
var s:string;
begin
BitBtn1.Enabled:=true;
BitBtn2.Enabled:=true;
DM_user.T_User.Close;
DM_user.T_User.Open;
s:=DM_user.T_User.fieldbyname('right').asstring;
s:=trim(s);
s:=decrypt(s);
if length(s)=0 then
s:='0';
onsee(s);
//Edit1.Text:=DM_user.T_User.fieldbyname('Username').asstring;
//Edit2.Text:=DM_user.T_User.fieldbyname('password').asstring;
//Edit3.Text:=DM_user.T_User.fieldbyname('password').asstring;
end;
procedure Tuser.BitBtn5Click(Sender: TObject);
begin
{if trim(edit1.text)<>'' then
begin
// if (trim(edit2.text)<>'')and(trim(edit3.text)<>'')and
if (trim(edit2.text)=trim(edit3.text)) then
begin
if not checkbox1.Checked then
begin
CheckBox2.checked:=false;
CheckBox3.checked:=false;
CheckBox4.checked:=false;
CheckBox5.checked:=false;
end;
if not checkbox6.Checked then
begin
CheckBox7.checked:=false;
CheckBox9.checked:=false;
CheckBox10.checked:=false;
CheckBox8.checked:=false;
end;
if not checkbox19.Checked then
begin
CheckBox14.checked:=false;
CheckBox16.checked:=false;
CheckBox18.checked:=false;
CheckBox12.checked:=false;
CheckBox15.checked:=false;
CheckBox17.checked:=false;
CheckBox11.checked:=false;
CheckBox13.checked:=false;
end;
if not checkbox20.Checked then
begin
checkbox21.Checked:=false;
checkbox22.Checked:=false;
checkbox23.Checked:=false;
end;
with DM_user do
begin
T_User.Edit;
T_User.FieldByName('password').asstring:=edit2.text; //encrypt(edit2.Text);
T_User.FieldByName('Username').asstring:=edit1.text;
T_User.FieldByName('right').asstring:=onadd;
//t_User.FieldByName('M_time').asdatetime:=now;
t_User.Post;
BitBtn1.Enabled:=true;
BitBtn2.Enabled:=true;
end ;
end
else//if2
begin
Application.MessageBox('口令爲空,或兩次輸入的口令不一致!','消息',MB_ICONINFORMATION);
end;//if2
end
else
begin
Application.MessageBox('用戶名不能爲空!','消息',MB_ICONINFORMATION);
end;
}
end;
procedure Tuser.BitBtn3Click(Sender: TObject);
begin
close;
end;
procedure Tuser.FormShow(Sender: TObject);
begin
//application.CreateForm(Tuser,user);
dm_user.T_user.close;
dm_user.t_user.open;
DBGrid2DblClick(self);
if (screen.Height<600)and (screen.width<800) then
begin
scaled:=true;
height:=363;//round(height*longint(screen.height)*96 / 600/screen.pixelsperinch);
width :=570;//round( width *longint(screen.width)*96 / 800/screen.pixelsperinch);
self.Top:=82;//mainform.Height-mainform.clientheight+mainform.ToolBar2.Height+round((mainform.ClientHeight-mainform.ToolBar2.Height-mainform.StatusBar.Height-self.Height)/2);
self.Left:=33;//round((mainform.Width-self.Width)/2);
//ScaleControls(screen.width, 800);
//ScaleControls(96,screen.pixelsperinch);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -