📄 main.~pas
字号:
unit main;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, ExtCtrls, Menus, TFlatSpeedButtonUnit, StdCtrls,
Grids, DBGrids, DB, DBTables,DateUtils, ImgList, ToolWin;
type
Tmainfrm = class(TForm)
StatusBar1: TStatusBar;
MainMenu1: TMainMenu;
N1: TMenuItem;
k_longin: TMenuItem;
N5: TMenuItem;
k_exit: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
k_new: TMenuItem;
k_arrange: TMenuItem;
k_modify: TMenuItem;
N11: TMenuItem;
k_infomgr: TMenuItem;
k_queryuser: TMenuItem;
k_reg: TMenuItem;
k_query: TMenuItem;
k_borrow: TMenuItem;
k_return: TMenuItem;
k_about: TMenuItem;
N19: TMenuItem;
k_setpath: TMenuItem;
k_encf: TMenuItem;
N23: TMenuItem;
Panel1: TPanel;
DBGrid1: TDBGrid;
Panel2: TPanel;
Label2: TLabel;
edit1: TEdit;
Panel3: TPanel;
Panel4: TPanel;
Memo1: TMemo;
Query1: TQuery;
DataSource1: TDataSource;
Label1: TLabel;
ex_time: TIntegerField;
return_time: TDateField;
fj: TFloatField;
b_no: TStringField;
b_name: TStringField;
b_date: TDateField;
b_type: TStringField;
b_author: TStringField;
b_publisher: TStringField;
Label3: TLabel;
Label4: TLabel;
CoolBar1: TCoolBar;
ToolBar1: TToolBar;
loginbtn: TToolButton;
ToolButton2: TToolButton;
exitbtn: TToolButton;
ToolBar2: TToolBar;
querybtn: TToolButton;
ToolButton3: TToolButton;
borrowbtn: TToolButton;
ToolButton5: TToolButton;
returnbtn: TToolButton;
user_encfbtn: TToolButton;
ToolButton8: TToolButton;
ToolBar3: TToolBar;
newbtn: TToolButton;
ToolButton10: TToolButton;
ToolButton11: TToolButton;
arrangebtn: TToolButton;
modifybtn: TToolButton;
ToolButton14: TToolButton;
queryuserbtn: TToolButton;
ToolButton16: TToolButton;
regbtn: TToolButton;
ToolButton18: TToolButton;
infomgrbtn: TToolButton;
ToolButton20: TToolButton;
ToolButton21: TToolButton;
setpathbtn: TToolButton;
mgr_encfbtn: TToolButton;
ImageList1: TImageList;
ImageList2: TImageList;
ImageList3: TImageList;
ToolButton1: TToolButton;
ToolButton4: TToolButton;
Splitter1: TSplitter;
ToolButton6: TToolButton;
procedure k_regClick(Sender: TObject);
procedure k_longinClick(Sender: TObject);
procedure loginbtnClick(Sender: TObject);
procedure exitbtnClick(Sender: TObject);
procedure k_exitClick(Sender: TObject);
procedure k_setpathClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Query1CalcFields(DataSet: TDataSet);
procedure DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
procedure k_aboutClick(Sender: TObject);
procedure k_queryClick(Sender: TObject);
procedure querybtnClick(Sender: TObject);
procedure k_newClick(Sender: TObject);
procedure k_borrowClick(Sender: TObject);
procedure borrowbtnClick(Sender: TObject);
procedure k_returnClick(Sender: TObject);
procedure returnbtnClick(Sender: TObject);
procedure k_encfClick(Sender: TObject);
procedure user_encfbtnClick(Sender: TObject);
procedure k_infomgrClick(Sender: TObject);
procedure newbtnClick(Sender: TObject);
procedure arrangebtnClick(Sender: TObject);
procedure modifybtnClick(Sender: TObject);
procedure queryuserbtnClick(Sender: TObject);
procedure regbtnClick(Sender: TObject);
procedure infomgrbtnClick(Sender: TObject);
procedure setpathbtnClick(Sender: TObject);
procedure mgr_encfbtnClick(Sender: TObject);
procedure k_arrangeClick(Sender: TObject);
procedure k_modifyClick(Sender: TObject);
procedure k_queryuserClick(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
private
{ Private declarations }
procedure listextimebook;//列举用户超时图书情况
public
{ Public declarations }
procedure viewmenu(p:integer);
procedure listbookinfo;//列举用户图书借阅情况
end;
var
mainfrm: Tmainfrm;
implementation
uses global,login,regulation,setpath,about,uquery,newbook,borrowbooks,exbookinfo,
enc,userinfo,returnbook,delrec,modify,mgrquery;
{$R *.dfm}
procedure Tmainfrm.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 Tmainfrm.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_longin.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_longin.Caption :='注销';
loginbtn.Caption :='注销';
statusbar1.Panels[0].Text :='';
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_longin.Caption :='注销';
loginbtn.Caption :='注销';
statusbar1.Panels[0].Text :='管理员:'+username;
end;
end;
end;
procedure Tmainfrm.listbookinfo ;
begin
with Query1 do
begin
Close;
DatabaseName :=dbname ;
SQL.Clear ;
SQL.Add('select b.图书编号,b.书名,b.作者,b.出版社,b.类别,a.借出时间 '+
'from borrow_info a,book_info b '+
'where a.学生证号='''+userpwd+''' and a.图书编号=b.图书编号');
Open ;
listextimebook;//查看是否有超时图书
end;
end;
procedure Tmainfrm.k_regClick(Sender: TObject);
begin
regfrm.ShowModal ;
end;
procedure Tmainfrm.k_longinClick(Sender: TObject);
begin
if copy(k_longin.Caption,1,4)='登录' then
loginfrm.ShowModal
else
if messagedlg('确实要注销"'+username+'"吗?',mtconfirmation,[mbYes,mbNo],0)=mrYes then
begin
username:='';
userpwd:='';
viewmenu(-1);
end;
end;
procedure Tmainfrm.loginbtnClick(Sender: TObject);
begin
k_longin.OnClick(self);
end;
procedure Tmainfrm.exitbtnClick(Sender: TObject);
begin
k_exit.OnClick(self);
end;
procedure Tmainfrm.k_exitClick(Sender: TObject);
begin
close;
end;
procedure Tmainfrm.k_setpathClick(Sender: TObject);
begin
setpathfrm.showmodal;
end;
procedure Tmainfrm.FormCreate(Sender: TObject);
begin
viewmenu(-1);
end;
procedure Tmainfrm.Query1CalcFields(DataSet: TDataSet);
begin
return_time.Value :=query1.fieldbyname('借出时间').Value+P_days;
if return_time.Value<date then
ex_time.Value :=daysbetween(date,return_time.Value)
else ex_time.Value :=0;
fj.Value :=p_momey*ex_time.Value ;
end;
procedure Tmainfrm.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 Tmainfrm.k_aboutClick(Sender: TObject);
begin
aboutfrm.ShowModal ;
end;
procedure Tmainfrm.k_queryClick(Sender: TObject);
begin
uqueryfrm.ShowModal ;
end;
procedure Tmainfrm.querybtnClick(Sender: TObject);
begin
k_query.OnClick(self);
end;
procedure Tmainfrm.k_newClick(Sender: TObject);
begin
newfrm.ShowModal ;
end;
procedure Tmainfrm.k_borrowClick(Sender: TObject);
begin
borrowfrm.ShowModal ;
end;
procedure Tmainfrm.borrowbtnClick(Sender: TObject);
begin
k_borrow.OnClick(self);
end;
procedure Tmainfrm.k_returnClick(Sender: TObject);
begin
returnbookfrm.ShowModal ;
end;
procedure Tmainfrm.returnbtnClick(Sender: TObject);
begin
k_return.OnClick(self);
end;
procedure Tmainfrm.k_encfClick(Sender: TObject);
begin
if panel1.Visible then
begin
p1visible :=true;
panel1.Visible :=false;
end
else p1visible :=false;
encfrm.ShowModal ;
end;
procedure Tmainfrm.user_encfbtnClick(Sender: TObject);
begin
k_encf.OnClick(self);
end;
procedure Tmainfrm.k_infomgrClick(Sender: TObject);
begin
userinfofrm.ShowModal ;
end;
procedure Tmainfrm.newbtnClick(Sender: TObject);
begin
k_new.OnClick(self);
end;
procedure Tmainfrm.arrangebtnClick(Sender: TObject);
begin
k_arrange.OnClick(self);
end;
procedure Tmainfrm.modifybtnClick(Sender: TObject);
begin
k_modify.OnClick(self);
end;
procedure Tmainfrm.queryuserbtnClick(Sender: TObject);
begin
k_queryuser.OnClick(self);
end;
procedure Tmainfrm.regbtnClick(Sender: TObject);
begin
k_reg.OnClick(self);
end;
procedure Tmainfrm.infomgrbtnClick(Sender: TObject);
begin
k_infomgr.OnClick(self);
end;
procedure Tmainfrm.setpathbtnClick(Sender: TObject);
begin
k_setpath.OnClick(self);
end;
procedure Tmainfrm.mgr_encfbtnClick(Sender: TObject);
begin
k_encf.OnClick(self);
end;
procedure Tmainfrm.k_arrangeClick(Sender: TObject);
begin
delfrm.ShowModal ;
end;
procedure Tmainfrm.k_modifyClick(Sender: TObject);
begin
modifyfrm.ShowModal;
end;
procedure Tmainfrm.k_queryuserClick(Sender: TObject);
begin
mgrqfrm.ShowModal ;
end;
procedure Tmainfrm.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
if messagedlg('真的要退出系统吗?',mtconfirmation,[mbYes,mbNo],0)=mrNo then
canclose:=false;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -