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

📄 mainfile.~pas

📁 基于Interbase的图书管理系统
💻 ~PAS
📖 第 1 页 / 共 3 页
字号:
unit mainfile;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Menus, StdCtrls, Buttons, ExtCtrls, ImgList, ComCtrls,DateUtils,
  childFrm,ButtonFrm,printchildfrm;

type
  TMainForm = class(TForm)
    mmMain: TMainMenu;
    mmiBook: TMenuItem;
    mmiReader: TMenuItem;
    mmiBorrowbook: TMenuItem;
    mmiSearch: TMenuItem;
    mmiReport: TMenuItem;
    mmiHigh: TMenuItem;
    mmiHelp: TMenuItem;
    mmClose: TMenuItem;
    mmibooktype: TMenuItem;
    mmiBookid: TMenuItem;
    mmiBookedit: TMenuItem;
    mmiReaderid: TMenuItem;
    pnlparent: TPanel;
    pnlshow: TPanel;
    Shape1: TShape;
    Panel1: TPanel;
    Panel2: TPanel;
    Label1: TLabel;
    imgDostop: TImage;
    SBtnborrow: TSpeedButton;
    SBtnSearch1: TSpeedButton;
    SBtnRenewal: TSpeedButton;
    SBtnSearch2: TSpeedButton;
    SBtnRuturn: TSpeedButton;
    SBtnSearch3: TSpeedButton;
    SBtnRight: TSpeedButton;
    SBtnData: TSpeedButton;
    SBtnTime: TSpeedButton;
    SBtnLogon: TSpeedButton;
    SBtnclose: TSpeedButton;
    mmiCloseid: TMenuItem;
    mmiReaderEdit: TMenuItem;
    mmiBorrow: TMenuItem;
    mmiRenewal: TMenuItem;
    mmiReturn: TMenuItem;
    mmiBookclose: TMenuItem;
    mmiSearch1: TMenuItem;
    mmiSearch2: TMenuItem;
    mmiData: TMenuItem;
    mmiRight: TMenuItem;
    mmiReport1: TMenuItem;
    mmiReport2: TMenuItem;
    mmiReport3: TMenuItem;
    mmiReport4: TMenuItem;
    mmiAbout: TMenuItem;
    mmiSyshelp: TMenuItem;
    TimInstNum: TTimer;
    mmiStoreup: TMenuItem;
    pnlBtnparent: TPanel;
    SBhint: TSpeedButton;
    StBarshow: TStatusBar;
    mmiSearch3: TMenuItem;
    procedure mmCloseClick(Sender: TObject);
    procedure TimInstNumTimer(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormActivate(Sender: TObject);
    procedure SBtnLogonClick(Sender: TObject);//更换用户登入数据库
    procedure SBtnTimeClick(Sender: TObject); //设定系统时间
    procedure mmiRightClick(Sender: TObject);
    procedure mmibooktypeClick(Sender: TObject);
    procedure SBhintClick(Sender: TObject);
    procedure mmiReaderidClick(Sender: TObject);
    procedure mmiAboutClick(Sender: TObject);
    procedure mmiBorrowClick(Sender: TObject);
    procedure mmiBookidClick(Sender: TObject);
    procedure mmiRenewalClick(Sender: TObject);
    procedure mmiReturnClick(Sender: TObject);
    procedure mmiCloseidClick(Sender: TObject);
    procedure mmiBookcloseClick(Sender: TObject);
    procedure mmiSearch1Click(Sender: TObject);
    procedure SBtnSearch2Click(Sender: TObject);
    procedure SBtnSearch1Click(Sender: TObject);
    procedure mmiSearch2Click(Sender: TObject);
    procedure SBtnSearch3Click(Sender: TObject);
    procedure mmiStoreupClick(Sender: TObject);
    procedure mmiReport1Click(Sender: TObject);
    procedure FormDeactivate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure mmiReport2Click(Sender: TObject);
    procedure mmiReport3Click(Sender: TObject);
    procedure mmiReport4Click(Sender: TObject);
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    procedure FormDestroy(Sender: TObject);
    procedure SBtnDataClick(Sender: TObject);
    procedure mmiBookeditClick(Sender: TObject);
    procedure mmiReaderEditClick(Sender: TObject);
    procedure mmiSearch3Click(Sender: TObject);
  private
    procedure setOnTaskButtonWidthOrLeft;
    procedure btnClick(Sender: TObject); //自定义模块窗口导航按钮单击事件
      //自定义模块窗口关闭事件
    procedure CustCloseForm(Sender: TObject; var Action: TCloseAction);
    //设定导航框中按钮的可用性方法
    procedure setButtonEnable;
    //设定主菜单的可用性方法
    procedure setMenuEnable;
    //设定导航框的不可见的方法
    procedure setPnlshowNotVisble;
    //设定导航框的可见的方法
    procedure setPnlShowVisble;
    //系统进入登入数据库的方法
    procedure startlogin;
    //向功能与权限模块窗口中的listbox控件加入背景图片名称
    procedure addRightFormPictureItem;
    //创建模块窗口的一般的方法
    procedure createChildForm(InstanceClass: TComponentClass; var Reference);
    //创建特定模块窗口的方法
 procedure createButtonForm(InstanceClass: TComponentClass;optionstate:TOptionState; var Reference);
     { Private declarations }
 protected
    procedure SXMESSAGE(var msg:TMessage);message SX_MYMESSAGE;
    procedure PTREADER(var msg:TMessage);message PT_READER;
    procedure PTBOOK(var msg:TMessage);message PT_BOOK;
    procedure PTBORROW(var msg:TMessage);message PT_BORROW;
    procedure PTBOOKTYPE(var msg:TMessage);message PT_BOOKTYPE;
    procedure MYLOGIN(var msg:TMessage);message MY_LOGIN;
    procedure PTBOOKCOUNT(var msg:TMessage);message PT_BOOKCOUNT;
    procedure PTBORROWCOUNT(var msg:TMessage);message PT_BORROWCOUNT;
 public
      { Public declarations }
  end;

var
  MainForm: TMainForm;

implementation

uses dmfrm,rightfrm, booktypefrm, readeridfrm, aboutfrm, borrowfrm,
  bookidfrm, renewalfrm, returnfrm, closeidfrm, bookclosefrm, readeridnofrm,
  bookidnamefrm, StatisticFrm, storeupfrm, bookrpfrm, borrowrpfrm, passqpfrm,
  readeridrpfrm, booktypeqpfrm,datafrm,inifiles, bookeditfrm, readereditfrm,
  StatisticBorrowRpFrm, StatisticReturnRPFrm, FindBigSmallRpFrm, FindTypeBookFrm;

{$R *.dfm}
var
 showlogin:boolean;
 inifile:Tinifile;
procedure TMainForm.SXMESSAGE(var msg: TMessage);
begin
if msg.WParam=1 then
  begin
  imgDostop.Visible:=true;
  imgDostop.Picture.Assign(TPersistent(msg.LParam));
   end;
if msg.WParam=2 then
 begin
  imgDostop.Picture:=nil;
  imgDostop.Visible:=false;
  pnlparent.Color:=TColor(msg.LParam);
 end;

end;

procedure TmainForm.setOnTaskButtonWidthOrLeft;
var
 i,j,BouttonWide:integer;
begin
//todo:setOnTaskButtonWidthOrLeft
  i:=pnlBtnparent.ControlCount-1;
if i>3 then
 BouttonWide:=((pnlBtnparent.Width-SBhint.Left-SBhint.Width-4) div i)-2
  else BouttonWide:=180;
for j:=1 to pnlBtnparent.ControlCount-1 do
  begin
    pnlBtnparent.Controls[j].Width:=BouttonWide;
    pnlBtnparent.Controls[j].Left:=SBhint.Left+SBhint.Width+4+(j-1)*(BouttonWide+2);
  end;
end;

procedure TMainForm.btnClick(Sender: TObject);
var
 i:integer;
begin
//隐藏所有的窗口模块,显示当前被单击的模块窗口导航按钮所指的模块窗口导
 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;
 TChildForm((Sender as TSpeedButton).Owner).Show;
end;

procedure TMainForm.CustCloseForm(Sender: TObject; var Action: TCloseAction);
begin
//改变模块窗口中的模块窗口导航按钮的父控件,重排导航按钮,显示第二个导航按钮所指的模块窗口
 TChildForm(Sender).SBcommbtn.Parent:=TChildForm(Sender);
 setOnTaskButtonWidthOrLeft;
{ for i:=1 to pnlBtnparent.ControlCount-1 do
  begin
   pnlBtnparent.Controls[i].Left:=SBhint.Left+SBhint.Width+4+(i-1)*(100+4);
  end;    }
if pnlBtnparent.ControlCount<>1 then
 begin
 TSpeedButton(pnlBtnparent.ControlAtPos(point(SBhint.Left+SBhint.Width+5,3),false)).Down:=true;
 TSpeedButton(pnlBtnparent.ControlAtPos(point(SBhint.Left+SBhint.Width+5,3),false)).Click;
 end
 else begin
       setPnlShowVisble;  //显示导航框
       pnlBtnparent.Visible:=false; //隐藏模块窗口导航按钮的父控件
      end;
  Action:=caFree;
end;

procedure TMainForm.mmCloseClick(Sender: TObject);
begin
close;  //退出系统
end;

procedure TMainForm.setButtonEnable;
  procedure setSBtnNotEnable; //设定一般情况下,导航条状态
   begin
     setPnlShowVisble;
     SBtnborrow.Enabled:=false;
     SBtnRenewal.Enabled:=false;
     SBtnRuturn.Enabled:=false;
     SBtnSearch1.Enabled:=false;
     SBtnSearch2.Enabled:=false;
     SBtnSearch3.Enabled:=false;
     SBtnclose.Enabled:=true;
     SBtnData.Enabled:=false;
     SBtnLogon.Enabled:=true;
     SBtnRight.Enabled:=false;
     SBtnTime.Enabled:=true;
   end;
 procedure setruFindBtn; //设定为查询权限时,导航条按钮状态
   begin
     SBtnSearch1.Enabled:=true;
     SBtnSearch2.Enabled:=true;
     SBtnSearch3.Enabled:=true;
   end;
 procedure setruCommORruBorrowBtn;//设定为普通或借书权限时,导航条按钮状态
    begin
     SBtnborrow.Enabled:=true;
     SBtnRenewal.Enabled:=true;
     SBtnRuturn.Enabled:=true;
     SBtnSearch1.Enabled:=true;
     SBtnSearch2.Enabled:=true;
     SBtnSearch3.Enabled:=true;
    end;
 procedure setruSystemBtn; //设定为管理员权限时,导航条按钮状态
   begin
     SBtnborrow.Enabled:=true;
     SBtnRenewal.Enabled:=true;
     SBtnRuturn.Enabled:=true;
     SBtnSearch1.Enabled:=true;
     SBtnSearch2.Enabled:=true;
     SBtnSearch3.Enabled:=true;
     SBtnData.Enabled:=true;
     SBtnRight.Enabled:=true;
   end;

var
 userRight:TRightUser;
begin
 //首先设定导航条为可见,后根据权限设定按钮否可用;
 setSBtnNotEnable;
 userRight:=dmbook.getUserRight('');
 case userRight of
  ruFind:setruFindBtn;
  ruComm:setruCommORruBorrowBtn;
  ruBorrow:setruCommORruBorrowBtn;
  ruSystem:setruSystemBtn;
 end;
 //...
end;

procedure TMainForm.setPnlShowNotVisble;
begin
// 设定导航条为不可见;
pnlshow.Visible:=false;
end;

procedure TMainForm.setMenuEnable;
  procedure setcommMenu;//设定为一般菜单状态
   begin
  mmiBook.Enabled:=false;
  mmibooktype.Enabled:=false;
  mmiBookid.Enabled:=false;
  mmiBookedit.Enabled:=false;
  mmiReader.Enabled:=false;
  mmiReaderid.Enabled:=false;
  mmiCloseid.Enabled:=false;
  mmiReaderEdit.Enabled:=false;
  mmiBorrowbook.Enabled:=false;
  mmiBorrow.Enabled:=false;
  mmiRenewal.Enabled:=false;
  mmiReturn.Enabled:=false;
  mmiBookclose.Enabled:=false;
  mmiSearch.Enabled:=false;
  mmiSearch1.Enabled:=false;
  mmiSearch2.Enabled:=false;
  mmiReport.Enabled:=true;
  mmiReport1.Enabled:=true;
  mmiReport2.Enabled:=true;
  mmiReport3.Enabled:=true;
  mmiReport4.Enabled:=true;
  mmiHigh.Enabled:=true;
  mmiData.Enabled:=false;
  mmiRight.Enabled:=false;
  mmiStoreup.Enabled:=true;
   end;
 procedure setruFindMenu;//设定为查询权限时,菜单状态
   begin
  mmiSearch.Enabled:=true;
  mmiSearch1.Enabled:=true;
  mmiSearch2.Enabled:=true;
  mmiReport.Enabled:=true;
   end;
 procedure setruCommMenu;//设定为普通权限时,菜单状态
    begin
  mmiBook.Enabled:=true;
  mmibooktype.Enabled:=true;
  mmiBookid.Enabled:=true;
  mmiReader.Enabled:=true;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -