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

📄 main_form.pas

📁 delphi+sql2000实现的图书管理系统软件
💻 PAS
字号:
unit Main_Form;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Buttons, ExtCtrls, ToolWin, ComCtrls, jpeg, Menus, ExtDlgs,
  XPMenu,DB,ADODB,shellapi;

type
  TMain_F = class(TForm)
    StatusBar1: TStatusBar;
    OpenPictureDialog1: TOpenPictureDialog;
    MainMenu1: TMainMenu;
    File_N: TMenuItem;
    Close_N: TMenuItem;
    Operator_N: TMenuItem;
    ViewF_N: TMenuItem;
    ViewBM_N: TMenuItem;
    ViewSM_N: TMenuItem;
    ViewH_N: TMenuItem;
    N20: TMenuItem;
    ChangBG_N: TMenuItem;
    BookM_N: TMenuItem;
    XSRK_N: TMenuItem;
    TSZL_N: TMenuItem;
    BJSK_N: TMenuItem;
    N12: TMenuItem;
    TSJH_N: TMenuItem;
    N14: TMenuItem;
    Query_N: TMenuItem;
    SetM_N: TMenuItem;
    ZYHGL_N: TMenuItem;
    QXGL_N: TMenuItem;
    Help_N: TMenuItem;
    GY_N: TMenuItem;
    Image1: TImage;
    CoolBar1: TCoolBar;
    Panel1: TPanel;
    Background_SB: TSpeedButton;
    Close_SB: TSpeedButton;
    Panel2: TPanel;
    XSRK_SB: TSpeedButton;
    TSZL_SB: TSpeedButton;
    TSJH_SB: TSpeedButton;
    BJSK_SB: TSpeedButton;
    CX_SB: TSpeedButton;
    Panel3: TPanel;
    ZYHGL_SB: TSpeedButton;
    QXGL_SB: TSpeedButton;
    BFHY_SB: TSpeedButton;
    Panel4: TPanel;
    About_SB: TSpeedButton;
    XPMenu1: TXPMenu;
    TS_Time: TTimer;
    Timer1: TTimer;
    N1: TMenuItem;
    QTSZ_N: TMenuItem;
    BFHY_N: TMenuItem;
    N2: TMenuItem;
    procedure FormDestroy(Sender: TObject);
    procedure Background_SBClick(Sender: TObject);
    procedure ViewF_NClick(Sender: TObject);
    procedure ViewBM_NClick(Sender: TObject);
    procedure ViewSM_NClick(Sender: TObject);
    procedure ViewH_NClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure XSRK_NClick(Sender: TObject);
    procedure TSZL_NClick(Sender: TObject);
    procedure TSJH_NClick(Sender: TObject);
    procedure CX_SBClick(Sender: TObject);
    procedure BJSK_NClick(Sender: TObject);
    procedure QXGL_NClick(Sender: TObject);
    procedure TS_TimeTimer(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure ZYHGL_NClick(Sender: TObject);
    procedure QTSZ_NClick(Sender: TObject);
    procedure BFHY_NClick(Sender: TObject);
    procedure GY_NClick(Sender: TObject);
    procedure Close_NClick(Sender: TObject);
    procedure N2Click(Sender: TObject);
  private
    { Private declarations }
     procedure MinWindow(var Msg: Tmessage);message WM_SYSCOMMAND;
  public
    { Public declarations }
  end;

var
  Main_F: TMain_F;

implementation

uses Share_Unit, XSRK_Form, TSWH_Form, TSJH_Form, CX_Form, BLJSK_Form,
  QXGL_Form, ZDTS_Form,IniFiles, YHZGL_Form, QTSZ_Form, BFHY_Form,
  About_Form;

{$R *.dfm}


//******************************************************************************
procedure TMain_F.MinWindow(var Msg: Tmessage);
begin
  if msg.WParam=SC_MINIMIZE then Application.Minimize;//self.WindowState:=wsMinimized;
  inherited;
end;
//******************************************************************************
procedure TMain_F.FormCreate(Sender: TObject);
begin
   ViewF_N.Checked := ViewFile;
   CoolBar1.Bands[0].Visible := ViewF_N.Checked;
   ViewBM_N.Checked := ViewBookMgr;
   CoolBar1.Bands[1].Visible := ViewBM_N.Checked;
   ViewSM_N.Checked := ViewSettingMgr;
   CoolBar1.Bands[2].Visible := ViewSM_N.Checked;
   ViewH_N.Checked := ViewAbout;
   CoolBar1.Bands[3].Visible := ViewH_N.Checked;
   StatusBar1.Panels[0].Text := '用户名:'+UserName;
   if QX ='0' then
     StatusBar1.Panels[1].Text := '用户描述:超级管理员'
   else
     if QX='1' then
       StatusBar1.Panels[1].Text := '用户描述:一般管理员'
     else
       StatusBar1.Panels[1].Text := '用户描述:一般用户';
   StatusBar1.Panels[2].Text:='日期:'+datetimetostr(date);
end;
//******************************************************************************
procedure TMain_F.FormShow(Sender: TObject);
var
  myini:TIniFile;
  OldCheckDay:String;
  num,maxnum:integer;
begin
   if QX='2' then
     begin
       XSRK_N.Enabled:=false;      //一般用户菜单上的功能很多不能让他用
       TSZL_N.Enabled:=false;
       BJSK_N.Enabled:=false;
       TSJH_N.Enabled:=false;
       QXGL_N.Enabled:=false;
       QTSZ_N.Enabled:=false;
       BFHY_N.Enabled:=false;
       ZYHGL_N.Enabled:=false;

       BJSK_SB.Enabled:=false;       //一般用户工具条上的功能很多不能让他用
       TSZL_SB.Enabled:=false;
       TSJH_SB.Enabled:=false;
       XSRK_SB.Enabled:=false;
       QXGL_SB.Enabled:=false;
       ZYHGL_SB.Enabled:=false;
       BFHY_SB.Enabled:=false;

       exit;
     end
    else if QX='1' then
       begin
         XSRK_N.Enabled:=false;      //一般管理员菜单上的有些功能不能让他用
         TSZL_N.Enabled:=false;
         QXGL_N.Enabled:=false;
         ZYHGL_N.Enabled:=false;

         TSZL_SB.Enabled:=false;      //一般管理员工具条上的有些功能不能让他用
         XSRK_SB.Enabled:=false;
         QTSZ_N.Enabled:=false;
         BFHY_N.Enabled:=false;
         QXGL_SB.Enabled:=false;
         ZYHGL_SB.Enabled:=false;
         BFHY_SB.Enabled:=false;
      end;

   myini:=TIniFile.Create(ExtractFilePath(Application.ExeName)+'set.ini');
   OldCheckDay:=myini.ReadString('set','OldCheckDay','');  //已经提示了几次
   maxnum:=myini.ReadInteger('set','MaxCheckNum',0);   //提示的最多次数
   if maxnum=0 then exit;
   if OldCheckDay=DateToStr(date) then
      begin
        num:=myini.ReadInteger('set','Checked',0);
        if num<maxnum then
          begin
             num:=num+1;
             myini.WriteInteger('set','Checked',num);
             TS_Time.Enabled:=true;      //主窗体显示1秒后启动自动提示功能
          end;
      end
   else begin
      myini.WriteString('set','OldCheckDay',DateToStr(date));
      myini.WriteInteger('set','Checked',1);
      TS_Time.Enabled:=true;
   end;
end;
//******************************************************************************
procedure TMain_F.FormDestroy(Sender: TObject);
begin
  connect.Connected:=false;
  Application.Terminate;
end;
//******************************************************************************
procedure TMain_F.TS_TimeTimer(Sender: TObject);
var
   JYXX_Q:TADOQuery;
begin
   TS_Time.Enabled:=false;
   JYXX_Q:=TADOQuery.Create(nil);
   JYXX_Q.Connection:=Connect;
   JYXX_Q.SQL.Add('Select * From 借阅信息 Where 到期日期<:现在日期 and 还书日期 is null');
   JYXX_Q.Parameters.ParamByName('现在日期').Value:=date;
   JYXX_Q.Open;
   if JYXX_Q.RecordCount=0 then exit;
      with TZDTS_F.Create(nil) do
        try
           ShowModal;
        finally
           Free;
        end;
   JYXX_Q.Close;
   FreeAndNil(JYXX_Q);
end;
//******************************************************************************
procedure TMain_F.Timer1Timer(Sender: TObject);
begin
    StatusBar1.Panels[3].Text:='时间:'+timetostr(time);
end;
//******************************************************************************
procedure TMain_F.Background_SBClick(Sender: TObject);
var
  C_Path:string;
begin
   C_Path:=GetCurrentDir;
   if OpenPictureDialog1.Execute then
     if Length(OpenPictureDialog1.FileName)>0 then
       begin
         Image1.Picture:=nil;
         Image1.Hide;
         Image1.Picture.LoadFromFile(OpenPictureDialog1.FileName);
         Image1.Refresh;
         Image1.Show;
         SetCurrentDir(C_Path);
       end;
end;
//******************************************************************************
procedure TMain_F.ViewF_NClick(Sender: TObject);
begin
   ViewF_N.Checked := not ViewF_N.Checked;
   ViewFile := ViewF_N.Checked;
   CoolBar1.Bands[0].Visible := ViewF_N.Checked;
   CoolBar1.Visible :=(ViewFile)or(ViewSettingMgr)
      or(ViewBookMgr)or(ViewAbout);
end;
//******************************************************************************
procedure TMain_F.ViewBM_NClick(Sender: TObject);
begin
   ViewBM_N.Checked := not ViewBM_N.Checked;
   ViewBookMgr := ViewBM_N.Checked;
   CoolBar1.Bands[1].Visible := ViewBM_N.Checked;
   CoolBar1.Visible :=(ViewFile)or(ViewSettingMgr)
      or(ViewBookMgr)or(ViewAbout);
end;
//******************************************************************************
procedure TMain_F.ViewSM_NClick(Sender: TObject);
begin
   ViewSM_N.Checked := not ViewSM_N.Checked;
   ViewSettingMgr := ViewSM_N.Checked;
   CoolBar1.Bands[2].Visible := ViewSM_N.Checked;
   CoolBar1.Visible :=(ViewFile)or(ViewSettingMgr)
      or(ViewBookMgr)or(ViewAbout);
end;
//******************************************************************************
procedure TMain_F.ViewH_NClick(Sender: TObject);
begin
   ViewH_N.Checked := not ViewH_N.Checked;
   ViewAbout := ViewH_N.Checked;
   CoolBar1.Bands[3].Visible :=ViewH_N.Checked;
   CoolBar1.Visible :=(ViewFile)or(ViewSettingMgr)
      or(ViewBookMgr)or(ViewAbout);
end;
//******************************************************************************
procedure TMain_F.XSRK_NClick(Sender: TObject);
begin
   with TXSRK_F.Create(nil) do
     try
        ShowModal;
     finally
        free;
     end;
end;
//******************************************************************************
procedure TMain_F.TSZL_NClick(Sender: TObject);
begin
   with TTSWH_F.Create(nil) do
     try
       ShowModal;
     finally
       free;
     end;
end;
//******************************************************************************
procedure TMain_F.TSJH_NClick(Sender: TObject);
begin
   with TTSJH_F.Create(nil) do
     try
        ShowModal;
     finally
        free;
     end;
end;
//******************************************************************************
procedure TMain_F.CX_SBClick(Sender: TObject);
begin
   with TCX_F.Create(nil) do
      try
         ShowModal;
      finally
         free;
      end;
end;
//******************************************************************************
procedure TMain_F.BJSK_NClick(Sender: TObject);
begin
    with TBLJSK_F.Create(nil) do
       try
          ShowModal;
       finally
          free;
       end;
end;
//******************************************************************************
procedure TMain_F.QXGL_NClick(Sender: TObject);
begin
    with TQXGL_F.Create(nil) do
       try
          ShowModal;
       finally
          free;
       end;
end;
//******************************************************************************
procedure TMain_F.ZYHGL_NClick(Sender: TObject);
begin
      with TYHZGL_F.Create(nil) do
         try
            ShowModal;
         finally
            free;
         end;
end;
//******************************************************************************
procedure TMain_F.QTSZ_NClick(Sender: TObject);
begin
   with TQTSZ_F.Create(nil) do
     try
       ShowModal;
     finally
       free;
     end;
end;
//******************************************************************************
procedure TMain_F.BFHY_NClick(Sender: TObject);
begin
    with TBFHY_F.Create(nil) do
     try
       ShowModal;
     finally
       free;
     end;
end;
//******************************************************************************
procedure TMain_F.GY_NClick(Sender: TObject);
begin
    with TAbout_F.Create(nil) do
     try
       ShowModal;
     finally
       free;
     end;
end;
//******************************************************************************
procedure TMain_F.Close_NClick(Sender: TObject);
begin
   close;
end;
//******************************************************************************
procedure TMain_F.N2Click(Sender: TObject);
begin
   shellexecute(handle,nil,Pchar('.\Clock.exe'),nil,nil,sw_shownormal);
end;

end.

⌨️ 快捷键说明

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