📄 mainfile.~pas
字号:
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 + -