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

📄 main.~pas

📁 delphi编写的图书管理系统,一般的管理系统
💻 ~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 + -