📄 mainfile.~pas
字号:
mmiReaderid.Enabled:=true;
mmiCloseid.Enabled:=true;
mmiBorrowbook.Enabled:=true;
mmiBorrow.Enabled:=true;
mmiRenewal.Enabled:=true;
mmiReturn.Enabled:=true;
mmiBookclose.Enabled:=true;
mmiSearch.Enabled:=true;
mmiSearch1.Enabled:=true;
mmiSearch2.Enabled:=true;
end;
procedure setruBorrowMenu;//设定为借书权限时,菜单状态
begin
mmiBorrowbook.Enabled:=true;
mmiBorrow.Enabled:=true;
mmiRenewal.Enabled:=true;
mmiReturn.Enabled:=true;
mmiBookclose.Enabled:=true;
mmiSearch.Enabled:=true;
mmiSearch1.Enabled:=true;
mmiSearch2.Enabled:=true;
end;
procedure setruSystemMenu;//设定为管理员权限时,菜单状态
begin
mmiBook.Enabled:=true;
mmibooktype.Enabled:=true;
mmiBookid.Enabled:=true;
mmiBookedit.Enabled:=true;
mmiReader.Enabled:=true;
mmiReaderid.Enabled:=true;
mmiCloseid.Enabled:=true;
mmiReaderEdit.Enabled:=true;
mmiBorrowbook.Enabled:=true;
mmiBorrow.Enabled:=true;
mmiRenewal.Enabled:=true;
mmiReturn.Enabled:=true;
mmiBookclose.Enabled:=true;
mmiSearch.Enabled:=true;
mmiSearch1.Enabled:=true;
mmiSearch2.Enabled:=true;
mmiData.Enabled:=true;
mmiRight.Enabled:=true;
end;
var
userRight:TRightUser;
begin
//首先设定菜单为不可用,后根据权限设定菜单是否可用;
setcommMenu;
userRight:=dmbook.getUserRight('');
case userRight of
ruFind:setruFindMenu;
ruComm:setruCommMenu;
ruBorrow:setruBorrowMenu;
ruSystem:setruSystemMenu;
end;
//...
end;
procedure TMainForm.createChildForm(InstanceClass: TComponentClass; var Reference);
var
Instance: TChildForm;
i:integer;
begin
pnlBtnparent.Visible:=true; //模块窗口导航按钮的父控件可见
if pnlparent.ControlCount<>0 then //隐藏所有模块窗口
begin
for i:=1 to pnlparent.ControlCount-1 do
begin
pnlparent.Controls[i].Hide;
// pnlparent.Controls[i].Parent:=nil;
end;
end;
for i:=0 to pnlBtnparent.ControlCount-1 do //设定所有模块窗口导航按钮不抬起状态
begin
TSpeedButton(pnlBtnparent.Controls[i]).Down:=false;
end;
if not assigned(TChildForm(Reference)) then //检测当前创建模块窗口的实例是否存在
begin //不存在就创建,存在就显示
Instance := TChildForm(InstanceClass.NewInstance);
TChildForm(Reference):= Instance;
try
Instance.Create(self,pnlparent); //创建当前模块窗口实例,并指定父控件
Instance.Show; //显示创建的模块窗口实例
Instance.SBcommbtn.OnClick:=btnClick; //给模块窗口导航按钮指定自定义的单击事件
Instance.OnClose:=CustCloseForm;//给模块窗口指定自定义的关闭事件
Instance.SBcommbtn.Parent:=pnlBtnparent;
Instance.SBcommbtn.Top:=3; //下列给模块窗口导航按钮指定属性
Instance.SBcommbtn.Height:=22;
Instance.SBcommbtn.Width:=100;
Instance.SBcommbtn.GroupIndex:=1;
Instance.SBcommbtn.Cursor:=crMultiDrag;
setOnTaskButtonWidthOrLeft;
{ i:=pnlBtnparent.ControlCount;
//Instance.SBcommbtn.Left:=(pnlBtnparent.Controls[i-1] as TSpeedButton).Left+(pnlBtnparent.Controls[i-1] as TSpeedButton).Width+2;
Instance.SBcommbtn.Left:=SBhint.Left+SBhint.Width+4+(i-1)*(100+4);
Instance.SBcommbtn.Caption:=Instance.Caption;
// Instance.SBcommbtn.Caption:=inttostr(pnlBtnparent.controlcount);}
Instance.SBcommbtn.Caption:=Instance.Caption;
Instance.SBcommbtn.Down:=true;
except //出现异样,把模块窗口实例清空
TChildForm(Reference) := nil;
raise;
end;
end
else begin //模块窗口实例存在的处理代码
TChildForm(Reference).SBcommbtn.Down:=true;
TChildForm(Reference).Parent:=pnlparent;
TChildForm(Reference).Show;
end;
end;
procedure TMainForm.createButtonForm(InstanceClass: TComponentClass;
optionstate: TOptionState; var Reference);
begin
createChildForm(InstanceClass,Reference);
TButtonForm(Reference).setbutton(optionstate);
end;
//检索键盘中的NumLock,CapsLock,Insert键的状态的定时器事件
procedure TMainForm.TimInstNumTimer(Sender: TObject);
var
ks:tkeyboardstate;
begin
application.ProcessMessages; //检索消息
if assigned(BookidForm) then BookidForm.DTPdate.DateTime:=now;
if assigned(RenewalForm) then RenewalForm.DTPrenewal.DateTime:=now;
if assigned(BorrowForm) then BorrowForm.DTPdate.DateTime:=now;
if assigned(ReturnForm) then ReturnForm.DTPreturn.DateTime:=now;
StBarshow.Panels[5].Text:=' '+datetostr(now)+' '+timetostr(now); //显示时间
getkeyboardstate(ks); //检索键盘中的NumLock,CapsLock,Insert键的状态
if odd(ks[VK_NUMLOCK]) then StBarshow.Panels[2].Text:=' NUM'
else StBarshow.Panels[2].Text:='';
if odd(ks[VK_INSERT]) then StBarshow.Panels[3].Text:=' INSERT'
else StBarshow.Panels[3].Text:='';
if odd(ks[VK_CAPITAL]) then StBarshow.Panels[4].Text:=' UPPER'
else StBarshow.Panels[4].Text:=' LOWER';
update;
end;
procedure TMainForm.FormCreate(Sender: TObject);
var
Abmp:string;
begin
showlogin:=true;
storeupfrm.isbackup:=false;
setPnlShowNotVisble;
pnlBtnparent.Visible:=false;
inifile:=Tinifile.Create(changefileext(application.exename,'.ini'));
if not openinifile(imgDostop,pnlparent,inifile) then
begin
Abmp:=extractfilepath(application.ExeName)+'backbmp\picture4.bmp';
if fileexists(Abmp) then
begin
imgDostop.Visible:=true;
imgDostop.Picture.LoadFromFile(Abmp);
end
else begin
imgDostop.Visible:=false;
pnlparent.Color:=clInfoBK;
end;
end;
end;
procedure TMainForm.startlogin;
begin //系统进入登入数据库的方法
dmbook.disconnectdbase;
dmbook.Dbasebook.AliasName:=dataAliasName;
dmbook.Dbasebook.DatabaseName:='guibook';
stBarshow.Panels[0].Text:='当前数据库源: '+dataAliasName;
if not Dmbook.login then
begin
// showmessage('password error');
stBarshow.Panels[0].Text:=Emptystr;
Dmbook.disconnectdbase;
application.Terminate;
end
else begin
setButtonEnable;
setMenuEnable;
stBarshow.Panels[1].Text:=' 当前用户名:'+CurrentUsername;
end;
end;
procedure TMainForm.addRightFormPictureItem;
var //向功能与权限模块窗口中的listbox控件加入背景图片名称
Aname:string;
begin
inherited;
//获取图片文件的路径
Aname:=extractfilepath(application.ExeName)+'backbmp\picture1.bmp';
//判断图片文件是否存在
if fileexists(Aname) then RightForm.lbpicture.Items.Add('人古画绘');
Aname:=extractfilepath(application.ExeName)+'backbmp\picture2.bmp';
if fileexists(Aname) then RightForm.lbpicture.Items.Add('蓝天白云');
Aname:=extractfilepath(application.ExeName)+'backbmp\picture3.bmp';
if fileexists(Aname) then RightForm.lbpicture.Items.Add('暗灰壁画');
Aname:=extractfilepath(application.ExeName)+'backbmp\picture4.bmp';
if fileexists(Aname) then RightForm.lbpicture.Items.Add('雪花纷飞');
Aname:=extractfilepath(application.ExeName)+'backbmp\picture5.bmp';
if fileexists(Aname) then RightForm.lbpicture.Items.Add('壁画之一');
Aname:=extractfilepath(application.ExeName)+'backbmp\picture6.bmp';
if fileexists(Aname) then RightForm.lbpicture.Items.Add('壁画之二');
RightForm.BBtnadduser.Enabled:=false;
RightForm.bbtnEdit.Enabled:=false;
RightForm.bbtnDel.Enabled:=false;
RightForm.BBtnRgok.Enabled:=false;
end;
procedure TMainForm.FormActivate(Sender: TObject);
begin
if showlogin then startlogin;
end;
procedure TMainForm.setPnlShowVisble;
begin
// 设定导航条为可见;
pnlshow.Visible:=true;
end;
procedure TMainForm.SBtnLogonClick(Sender: TObject);
begin //更换用户登入数据库
//dmbook.disconnectdbase;
setPnlShowNotVisble;
startlogin;
end;
procedure TMainForm.SBtnTimeClick(Sender: TObject);
var //设定系统时间
x:cardinal;
//startupinfo:TStartupinfo;
//processinfo:TPROCESSINFORMATION;
begin
x:=winexec('rundll32.exe shell32.dll,Control_RunDLL timedate.cpl',9);
if x=0 then messagebox(0,'程序超出內存','錯誤',0);
if x=ERROR_BAD_FORMAT then messagebox(0,'該程序非一個合法的Win32.EXE程序).','錯誤',0);
if x=ERROR_FILE_NOT_FOUND then messagebox(0,'指定文件沒找到','錯誤',0);
if x=ERROR_PATH_NOT_FOUND then messagebox(0,'指定路徑沒找到','錯誤',0);
{if not createprocess('rundll32.exe shell32.dll,Control_RunDLL Intl.cpl,,3',nil,nil,nil,true,0,nil,nil,startupinfo,processinfo)
then showmessage('error');}
end;
procedure TMainForm.mmiRightClick(Sender: TObject);
begin
createChildForm(TRightForm,RightForm);
addRightFormPictureItem;
if imgDostop.Visible then
postmessage(RightForm.Handle,SX_MYMESSAGE,mainform.Handle,Integer(imgDostop.Picture))
else
postmessage(RightForm.Handle,SY_MYMESSAGE,mainform.Handle,Integer(pnlparent.Color));
end;
procedure TMainForm.mmibooktypeClick(Sender: TObject);
begin
createButtonForm(TBooktypeForm,osBooktype,BooktypeForm);
end;
procedure TMainForm.SBhintClick(Sender: TObject);
var
i:integer;
begin //隐藏所有的模块窗口
for i:=1 to pnlparent.ControlCount-1 do
pnlparent.Controls[i].Hide;
SBhint.Down:=true;
//showmessage(inttostr(pnlbtnparent.ComponentCount));
end;
procedure TMainForm.mmiReaderidClick(Sender: TObject);
begin
createButtonForm(TReaderidForm,osReaderid,ReaderidForm);
end;
procedure TMainForm.mmiAboutClick(Sender: TObject);
var
showpnl:boolean;
begin
showpnl:=pnlshow.Visible;
pnlshow.Visible:=false;
if not assigned(aboutform) then
aboutform:=Taboutform.Create(application);
if aboutform.ShowModal=mrok then
pnlshow.Visible:=showpnl;
end;
procedure TMainForm.mmiBorrowClick(Sender: TObject);
begin
createButtonForm(TBorrowForm,osBorrow,BorrowForm);
end;
procedure TMainForm.mmiBookidClick(Sender: TObject);
begin
createButtonForm(TbookidForm,osBooktype,bookidForm);
end;
procedure TMainForm.mmiRenewalClick(Sender: TObject);
begin
createButtonForm(TRenewalForm,osRenewal,RenewalForm);
end;
procedure TMainForm.mmiReturnClick(Sender: TObject);
begin
createButtonForm(TReturnForm,osReturn,ReturnForm);
end;
procedure TMainForm.mmiCloseidClick(Sender: TObject);
begin
createChildForm(TCloseidForm,CloseidForm);
CloseidForm.Caption:='【遗失借书证、退借书证】';
end;
procedure TMainForm.mmiBookcloseClick(Sender: TObject);
begin
createChildForm(TBookcloseForm,BookcloseForm);
BookcloseForm.Caption:='【借书遗失、借书书破损、借书过期处理】';
end;
procedure TMainForm.mmiSearch1Click(Sender: TObject);
begin
createChildForm(TreaderidnoForm,readeridnoForm);
readeridnoForm.Caption:='〖按证号或工号方式查询〗';
end;
procedure TMainForm.SBtnSearch2Click(Sender: TObject);
begin
mmiSearch1Click(Sender);
readeridnoForm.PageControl1.ActivePageIndex:=1;
end;
procedure TMainForm.SBtnSearch1Click(Sender: TObject);
begin
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -