📄 mainfrm.pas
字号:
unit mainfrm;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ToolWin, ComCtrls, ImgList, DB, DBTables, ExtCtrls, Grids,
DBGrids, Menus, StdCtrls, Buttons;
type
Tmainform = class(TForm)
CoolBar1: TCoolBar;
MainMenu1: TMainMenu;
StatusBar1: TStatusBar;
Panel1: TPanel;
Splitter1: TSplitter;
Panel3: TPanel;
Panel2: TPanel;
Query1: TQuery;
DataSource1: TDataSource;
ImageList1: TImageList;
ImageList2: TImageList;
ImageList3: TImageList;
N1: TMenuItem;
k_login: TMenuItem;
N6: TMenuItem;
k_encf: TMenuItem;
N5: TMenuItem;
k_exit: TMenuItem;
N2: TMenuItem;
k_new: TMenuItem;
k_arrange: TMenuItem;
k_modify: TMenuItem;
k_queryuser: TMenuItem;
N12: TMenuItem;
k_reg: TMenuItem;
k_infomgr: TMenuItem;
N15: TMenuItem;
k_setpath: TMenuItem;
N3: TMenuItem;
k_query: TMenuItem;
k_borrow: TMenuItem;
k_return: TMenuItem;
N4: TMenuItem;
k_about: TMenuItem;
ToolBar1: TToolBar;
ToolBar2: TToolBar;
ToolBar3: TToolBar;
loginbtn: TBitBtn;
exitbtn: TBitBtn;
querybtn: TBitBtn;
borrowbtn: TBitBtn;
Splitter2: TSplitter;
Splitter3: TSplitter;
Splitter4: TSplitter;
returnbtn: TBitBtn;
Splitter5: TSplitter;
user_encfbtn: TBitBtn;
newbtn: TBitBtn;
Splitter6: TSplitter;
arrangebtn: TBitBtn;
Splitter7: TSplitter;
modifybtn: TBitBtn;
Splitter8: TSplitter;
queryuserbtn: TBitBtn;
Splitter9: TSplitter;
regbtn: TBitBtn;
Splitter10: TSplitter;
infomgrbtn: TBitBtn;
Splitter11: TSplitter;
setpathbtn: TBitBtn;
Splitter12: TSplitter;
mgr_encfbtn: TBitBtn;
Splitter13: TSplitter;
Edit1: TEdit;
Label1: TLabel;
Label2: TLabel;
B_no: TStringField;
B_name: TStringField;
B_author: TStringField;
B_publisher: TStringField;
B_type: TStringField;
B_date: TDateField;
Return_time: TDateField;
Ex_time: TIntegerField;
fj: TFloatField;
DBGrid1: TDBGrid;
procedure k_loginClick(Sender: TObject);
procedure k_exitClick(Sender: TObject);
procedure k_encfClick(Sender: TObject);
procedure k_newClick(Sender: TObject);
procedure k_arrangeClick(Sender: TObject);
procedure k_modifyClick(Sender: TObject);
procedure k_queryuserClick(Sender: TObject);
procedure k_regClick(Sender: TObject);
procedure k_infomgrClick(Sender: TObject);
procedure k_setpathClick(Sender: TObject);
procedure k_queryClick(Sender: TObject);
procedure k_borrowClick(Sender: TObject);
procedure k_returnClick(Sender: TObject);
procedure Query1CalcFields(DataSet: TDataSet);
procedure DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
procedure k_aboutClick(Sender: TObject);
private
{ Private declarations }
procedure listextimebook;
public
{ Public declarations }
procedure viewmenu(p:integer);
procedure listbookinfo;
end;
var
mainform: Tmainform;
implementation
Uses login,global,exbookinfoUnit,delrec,modify,mgrquery,regulation,
setpath,jiami,userinfo,guanyu,returnbook,uquery,borrowbooks,newbookunit;
{$R *.dfm}
procedure Tmainform.viewmenu(p:integer);
begin
case p of
-1:begin
k_encf.Visible:=false;
n5.Visible:=false;
n2.Visible:=false;
n3.Visible:=false;
CoolBar1.Bands[1].Visible:=false;
panel1.Visible:=false;
CoolBar1.Bands[2].Visible:=false;
k_login.Caption:='登录系统';
loginbtn.Caption:='登录系统';
statusbar1.Panels[0].Text:='没有用户登录!';
end;
1 :begin
listbookinfo;
panel1.Visible:=true;
n2.Visible:=false;
n3.Visible:=true;
coolbar1.Bands[1].Visible:=true;
coolbar1.Bands[2].Visible:=false;
k_encf.Visible:=true;
n5.Visible:=true;
k_login.Caption:='注销';
loginbtn.Caption:='注销';
statusbar1.Panels[0].Text:='普通用户:'+username;
edit1.Text:=username;
end;
0 :begin
panel1.Visible:=false;
coolbar1.Bands[2].Visible:=true;
n2.Visible:=true;
n3.Visible:=false;
coolbar1.Bands[1].Visible:=false;
k_encf.Visible:=true;
n5.Visible:=true;
k_login.Caption:='注销';
loginbtn.Caption:='注销';
statusbar1.Panels[0].Text:='管理员:'+username;
end;
end;
end;
procedure Tmainform.k_loginClick(Sender: TObject);
begin
if copy(k_login.Caption,1,4)='登录' then loginfrm.ShowModal
else if MessageDlg('确实要注销'''+username+'''吗?',mtconfirmation,[mbYes,mbNo],0)=mrYes then
begin
username:='';
userpwd:='';
viewmenu(-1);
end;
end;
procedure Tmainform.k_exitClick(Sender: TObject);
begin
if MessageDlg('真的要退出系统吗?',mtconfirmation,[mbYes,mbNo],0)=mrYes
then close;
end;
procedure Tmainform.k_encfClick(Sender: TObject);
begin
if panel1.Visible then
begin
plvisible:=true;
panel1.Visible:=false;
end
else plvisible:=false;
//showmessage('加密界面');
jiamifrm.ShowModal;
end;
procedure Tmainform.k_newClick(Sender: TObject);
begin
//showmessage('新书入库');
newfrm.Top:=mainform.Top+123;
newfrm.Left:=mainform.Left+2;
newfrm.Height:=mainform.Height-126;
newfrm.Width:=mainform.Width-4;
newfrm.ShowModal;
end;
procedure Tmainform.k_arrangeClick(Sender: TObject);
begin
//showmessage('整理图书');
delfrm.Top:=mainform.Top+123;
delfrm.Left:=mainform.Left+2;
delfrm.Height:=mainform.Height-126;
delfrm.Width:=mainform.Width-4;
delfrm.ShowModal;
end;
procedure Tmainform.k_modifyClick(Sender: TObject);
begin
//showmessage('修改图书信息');
modifyfrm.Top:=mainform.Top+123;
modifyfrm.Left:=mainform.Left+2;
modifyfrm.Height:=mainform.Height-126;
modifyfrm.Width:=mainform.Width-4;
modifyfrm.ShowModal;
end;
procedure Tmainform.k_queryuserClick(Sender: TObject);
begin
//showmessage('查询');
mgrqfrm.Top:=mainform.Top+123;
mgrqfrm.Left:=mainform.Left+2;
mgrqfrm.Height:=mainform.Height-126;
mgrqfrm.Width:=mainform.Width-4;
mgrqfrm.ShowModal;
end;
procedure Tmainform.k_regClick(Sender: TObject);
begin
//showmessage('规则管理');
regfrm.Top:=mainform.Top+123;
regfrm.Left:=mainform.Left+2;
regfrm.Height:=mainform.Height-126;
regfrm.Width:=mainform.Width-4;
regfrm.ShowModal;
end;
procedure Tmainform.k_infomgrClick(Sender: TObject);
begin
//showmessage('用户信息管理');
userinfofrm.Top:=mainform.Top+123;
userinfofrm.Left:=mainform.Left+2;
userinfofrm.Height:=mainform.Height-126;
userinfofrm.Width:=mainform.Width-4;
userinfofrm.ShowModal;
end;
procedure Tmainform.k_setpathClick(Sender: TObject);
begin
//showmessage('数据库路径');
setpathfrm.ShowModal;
end;
procedure Tmainform.k_queryClick(Sender: TObject);
begin
//showmessage('查询');
uqueryfrm.Top:=mainform.Top+166;
uqueryfrm.Left:=mainform.Left+2;
uqueryfrm.Height:=mainform.Height-169;
uqueryfrm.Width:=mainform.Width-4;
uqueryfrm.ShowModal;
end;
procedure Tmainform.k_borrowClick(Sender: TObject);
begin
//showmessage('借书');
borrowfrm.Top:=mainform.Top+166;
borrowfrm.Left:=mainform.Left+2;
borrowfrm.Height:=mainform.Height-169;
borrowfrm.Width:=mainform.Width-4;
borrowfrm.ShowModal;
end;
procedure Tmainform.k_returnClick(Sender: TObject);
begin
//showmessage('还书');
returnbookfrm.Top:=mainform.Top+166;
returnbookfrm.Left:=mainform.Left+2;
returnbookfrm.Height:=mainform.Height-169;
returnbookfrm.Width:=mainform.Width-4;
returnbookfrm.ShowModal;
end;
procedure Tmainform.Query1CalcFields(DataSet: TDataSet);
begin
return_time.Value:=query1.FieldByName('借出时间').Value+P_days;
if return_time.Value<date then
ex_time.Value:=1
else ex_time.Value:=0;
fj.Value:=p_money*ex_time.Value;
end;
procedure Tmainform.listbookinfo;
begin
with Query1 do
begin
close;
DatabaseName:=dbname;
sql.Clear;
SQL.Add('select b.图书编号,b.书名,b.作者,b.出版社,b.类别,a.借出时间');
SQL.Add('from borrow_info a,book_info b');
SQL.Add('where a.学生证号='''+userpwd+''' and a.图书编号=b.图书编号');
Open;
listextimebook;
end;
end;
procedure Tmainform.listextimebook;
begin
exbook_num:=0;
extimebookfrm.ListView1.Items.Clear;
with query1 do
begin
first;
while not eof do
begin
if fieldbyname('罚金').AsFloat<>0 then
with extimebookfrm.ListView1.Items.Add do
begin
caption:=query1.fieldbyname('图书编号').AsString;
subitems.Add(query1.fieldbyname('书名').AsString);
subitems.Add(query1.fieldbyname('作者').AsString);
subitems.Add(query1.fieldbyname('出版社').AsString);
subitems.Add(query1.fieldbyname('借出时间').AsString);
subitems.Add(query1.fieldbyname('超时').AsString);
subitems.Add(query1.fieldbyname('罚金').AsString);
inc(exbook_num);
end;
next;
end;
end;
end;
procedure Tmainform.DBGrid1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
with dbgrid1.Canvas do
if query1.FieldByName('罚金').Value<>0 then
begin
brush.Color:=clRed;
font.Color:=clWhite;
end;
dbgrid1.DefaultDrawDataCell(Rect,column.Field,State);
end;
procedure Tmainform.k_aboutClick(Sender: TObject);
begin
guanyufrm.ShowModal;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -