⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mainfile.pas

📁 基于Interbase的图书管理系统
💻 PAS
📖 第 1 页 / 共 3 页
字号:
  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 + -