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

📄 frmmainu.pas

📁 图书借阅管理系统含源代码
💻 PAS
字号:
unit frmMainU;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComCtrls, ToolWin, Menus, ImgList, StdCtrls, Buttons, jpeg,
  ExtCtrls;

type
  TfrmMain = class(TForm)
    MainMenu1: TMainMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    N3: TMenuItem;
    N4: TMenuItem;
    N5: TMenuItem;
    N6: TMenuItem;
    N7: TMenuItem;
    N8: TMenuItem;
    N9: TMenuItem;
    N10: TMenuItem;
    H1: TMenuItem;
    N11: TMenuItem;
    N12: TMenuItem;
    N13: TMenuItem;
    N14: TMenuItem;
    N15: TMenuItem;
    N16: TMenuItem;
    N17: TMenuItem;
    N18: TMenuItem;
    N21: TMenuItem;
    N24: TMenuItem;
    N25: TMenuItem;
    N26: TMenuItem;
    GroupBox1: TGroupBox;
    btnOperator: TBitBtn;
    btnReader: TBitBtn;
    btnAddBook: TBitBtn;
    btnResBook: TBitBtn;
    btnLoan: TBitBtn;
    btnReturn: TBitBtn;
    btnAddReader: TBitBtn;
    edClose: TBitBtn;
    N28: TMenuItem;
    N19: TMenuItem;
    N27: TMenuItem;
    N20: TMenuItem;
    N22: TMenuItem;
    SaveDialog: TSaveDialog;
    OpenDialog: TOpenDialog;
    Timer: TTimer;
    gbFrm: TPanel;
    Image1: TImage;
    procedure edCloseClick(Sender: TObject);
    procedure btnResBookClick(Sender: TObject);
    procedure btnOperatorClick(Sender: TObject);
    procedure N24Click(Sender: TObject);
    procedure N25Click(Sender: TObject);
    procedure N26Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    procedure N28Click(Sender: TObject);
    procedure btnAddBookClick(Sender: TObject);
    procedure btnReaderClick(Sender: TObject);
    procedure btnAddReaderClick(Sender: TObject);
    procedure N10Click(Sender: TObject);
    procedure N27Click(Sender: TObject);
    procedure N13Click(Sender: TObject);
    procedure N14Click(Sender: TObject);
    procedure N18Click(Sender: TObject);
    procedure N21Click(Sender: TObject);
    procedure N9Click(Sender: TObject);
    procedure N12Click(Sender: TObject);
    procedure H1Click(Sender: TObject);
    procedure btnLoanClick(Sender: TObject);
    procedure btnReturnClick(Sender: TObject);
    procedure N6Click(Sender: TObject);
    procedure N7Click(Sender: TObject);
    procedure N15Click(Sender: TObject);
    procedure N16Click(Sender: TObject);
    procedure N22Click(Sender: TObject);
    procedure TimerTimer(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    procedure LogonEnable(enb:Boolean);
    Procedure MyConnect();
    Procedure OpenMyForm(frm:TForm);
  end;

var
  frmMain: TfrmMain;

implementation

uses frmInquireU, DMU, frmOptionsU, frmBokInformU, frmReaderU,
  frmAddReaderU, frmRechargeableU, frmMoneyU, frmAboutU, frmHelpU,
  frmLoanU, frmRegisterU, frmUserU;

{$R *.dfm}
var
  frmMainCap:String;

procedure TfrmMain.edCloseClick(Sender: TObject);
begin
  Close;
end;

procedure TfrmMain.btnResBookClick(Sender: TObject);
begin
  if not Dm.LP('lp4')then
    exit;
  Application.CreateForm(TfrmInquire, frmInquire);
  openMyForm(frmInquire);
  frmInquire.Visible:=True;
end;

procedure TfrmMain.MyConnect;
begin
  DM.adoConConnect();
end;

procedure TfrmMain.btnOperatorClick(Sender: TObject);
var
  i:integer;
begin
  DM.adoLpCon(False,'');
  Dm.adoCon.Close;
  LogonEnable(False);
  for i:=0 to frmMain.gbFrm.ControlCount -1 do
  begin
    if frmMain.gbFrm.Controls[i]is TForm then
    TForm(frmMain.gbFrm.Controls[i]).Close;
  end;

  MyConnect();
  Dm.adoUser.Close;
  Dm.adoUser.SQL.Clear;
  Dm.adoUser.SQL.Text:='select * from lpUser where Name='+QuotedStr('Admin');
  DM.adoUser.Open;
  if Dm.adoUser.RecordCount=0 then
  begin
    Dm.adoUser.Append;
    Dm.adoUser.FieldByName('Name').AsString:='Admin';
    for i:=1 to 9 do
      Dm.adoUser.FieldByName('lp'+IntToStr(i)).AsString:='1';
    Dm.adoUser.Post;
  end;
  Dm.adoUser.Close;
  frmRegister.ShowModal;
end;

procedure TfrmMain.OpenMyForm(frm: TForm);
var
  i:integer;
begin
  for i:=0 to frmMain.gbFrm.ControlCount -1 do
  begin
    if frmMain.gbFrm.Controls[i]is TForm then
      TForm(frmMain.gbFrm.Controls[i]).Close;
  end;
  frm.Parent:=gbFrm;
  frm.Align:=alClient;
  frm.Show;
end;

procedure TfrmMain.N24Click(Sender: TObject);
begin
  if not Dm.LP('lp1') then
    exit;
  Application.CreateForm(TfrmOptions, frmOptions);
  frmOptions.pagc1.ActivePageIndex:=0;
  frmOptions.ShowModal;
end;

procedure TfrmMain.N25Click(Sender: TObject);
begin
  if not Dm.LP('lp1') then
    exit;
  Application.CreateForm(TfrmOptions, frmOptions);
  frmOptions.pagc1.ActivePageIndex:=1;
  frmOptions.ShowModal;
end;

procedure TfrmMain.N26Click(Sender: TObject);
begin
  if not Dm.LP('lp2') then
    exit;
  Application.CreateForm(TfrmOptions, frmOptions);
  frmOptions.pagc1.ActivePageIndex:=2;
  frmOptions.ShowModal;
end;

procedure TfrmMain.logonEnable(enb: Boolean);
begin
  N1.Enabled:=enb;
  N2.Enabled:=enb;
  N3.Enabled:=enb;
  N4.Enabled:=enb;
  btnLoan.Enabled:=enb;
  btnReturn.Enabled:=enb;
  btnResBook.Enabled:=enb;
  btnReader.Enabled:=enb;
  btnAddReader.Enabled:=enb;
  btnAddBook.Enabled:=enb;
end;

procedure TfrmMain.FormCreate(Sender: TObject);
begin
  LogonEnable(False);
  frmMainCap:=frmMain.Caption;
end;

procedure TfrmMain.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
  if MessageBox(0,Pchar('真的要退出系统吗?'),'提示',mb_okCancel+MB_ICONQUESTION+MB_DEFBUTTON2+MB_TASKMODAL)=IDOK then
    CanClose:=True
  else
    CanClose:=False;
end;

procedure TfrmMain.N28Click(Sender: TObject);
begin
  if not Dm.LP('lp1') then
    exit;
  Application.CreateForm(TfrmOptions, frmOptions);
  frmOptions.pagc1.ActivePageIndex:=3;
  frmOptions.ShowModal;
end;

procedure TfrmMain.btnAddBookClick(Sender: TObject);
begin
  if not Dm.LP('lp4')then
    exit;
  frmMain.OpenMyForm(frmBokInform);
  frmBokInform.Search(0);
  frmBokInform.btnAdd.Click;
end;

procedure TfrmMain.btnReaderClick(Sender: TObject);
begin
  if not Dm.LP('lp5')then
    exit;
  Application.CreateForm(TfrmReader, frmReader);
  frmMain.OpenMyForm(frmReader);
end;

procedure TfrmMain.btnAddReaderClick(Sender: TObject);
begin
  if not Dm.LP('lp5')then
    exit;
  frmMain.OpenMyForm(frmAddReader);
  frmAddReader.Search('');
  frmAddReader.btnAdd.Click;    
end;

procedure TfrmMain.N10Click(Sender: TObject);
begin
  Close;
end;

procedure TfrmMain.N27Click(Sender: TObject);
begin
  if not Dm.LP('lp6')then
    exit;
  frmMoney.ShowModal;
end;

procedure TfrmMain.N13Click(Sender: TObject);
begin
  btnResBook.Click;
end;

procedure TfrmMain.N14Click(Sender: TObject);
begin
  btnReader.Click;
end;

procedure TfrmMain.N18Click(Sender: TObject);
begin
  btnAddBook.Click;
end;

procedure TfrmMain.N21Click(Sender: TObject);
begin
  btnAddReader.Click;
end;

procedure TfrmMain.N9Click(Sender: TObject);
begin
  btnOperator.Click;
end;

procedure TfrmMain.N12Click(Sender: TObject);
begin
  frmAbout.ShowModal;
end;

procedure TfrmMain.H1Click(Sender: TObject);
begin
  frmHelp.ShowModal;  
end;

procedure TfrmMain.btnLoanClick(Sender: TObject);
begin
  if not DM.LP('lp3')then
    exit;
  frmLoan.Loan(True);
  frmLoan.ShowModal;
end;

procedure TfrmMain.btnReturnClick(Sender: TObject);
begin
  if not Dm.LP('lp3')then
    exit;
  frmLoan.Loan(False);
  frmLoan.ShowModal;
end;

procedure TfrmMain.N6Click(Sender: TObject);
var
  i:Integer;
begin
  if not Dm.LP('lp8')then
    exit;
  if MessageBox(0,'数据库备份必须先断开当前所有操作,你确定这样做吗?','提示',MB_OKCANCEL+MB_TASKMODAL+MB_ICONQUESTION)=IDOK then
  begin
    for i:=0 to frmMain.gbFrm.ControlCount -1 do
    begin
      if frmMain.gbFrm.Controls[i]is TForm then
        TForm(frmMain.gbFrm.Controls[i]).Close;
    end;
    LogonEnable(False);
    Dm.adoCon.Close;
    SaveDialog.FileName:=DateToStr(Date)+'.db';
    SaveDialog.InitialDir:=ExtractFilePath(Application.ExeName)+'data';
    if SaveDialog.Execute then
      CopyFile(Pchar(ExtractFilePath(Application.ExeName)+'data\db.mdb'),Pchar(SaveDialog.FileName),true);
  end;
end;

procedure TfrmMain.N7Click(Sender: TObject);
var
  i:integer;
begin
  if not Dm.LP('lp9')then
    exit;
  if MessageBox(0,'警告!恢复数据库会导致备份以后所操作的数据全部丢失,你真的要这样做吗','提示',MB_OKCANCEL+MB_TASKMODAL+MB_ICONQUESTION+MB_defbutton2)=IDOK then
    if MessageBox(0,'数据库备份必须先断开当前所有操作,你确定这样做吗?','提示',MB_OKCANCEL+MB_TASKMODAL+MB_ICONQUESTION+MB_defbutton2)=IDOK then
    begin
      for i:=0 to frmMain.gbFrm.ControlCount -1 do
      begin
        if frmMain.gbFrm.Controls[i]is TForm then
          TForm(frmMain.gbFrm.Controls[i]).Close;
      end;
      LogonEnable(False);
      Dm.adoCon.Close;
      OpenDialog.InitialDir:=ExtractFilePath(Application.ExeName)+'data';
      if OpenDialog.Execute then
      begin
        DeleteFile(ExtractFilePath(Application.ExeName)+'data\db.mdb');
        CopyFile(Pchar(OpenDialog.FileName),Pchar(ExtractFilePath(Application.ExeName)+'data\db.mdb'),true);
        if FileExists(ExtractFilePath(Application.ExeName)+'data\db.mdb')then
          MessageBox(0,'数据库恢复成功','提示',MB_OK+MB_TASKMODAL+MB_ICONEXCLAMATION);
      end;
    end;
end;

procedure TfrmMain.N15Click(Sender: TObject);
begin
  btnLoan.Click;
end;

procedure TfrmMain.N16Click(Sender: TObject);
begin
  btnReturn.Click;
end;

procedure TfrmMain.N22Click(Sender: TObject);
var
  i:integer;
begin
  if not Dm.LP('lp7')then
    exit;
  if MessageBox(0,'进行用户管理必须先关闭当前所有操作,你确定这样做吗?','提示',MB_OKCANCEL+MB_TASKMODAL+MB_ICONQUESTION+MB_defbutton2)=IDOK then
  begin
    for i:=0 to frmMain.gbFrm.ControlCount -1 do
    begin
      if frmMain.gbFrm.Controls[i]is TForm then
        TForm(frmMain.gbFrm.Controls[i]).Close;
    end;
    frmUser.ShowModal;
  end;
end;

procedure TfrmMain.TimerTimer(Sender: TObject);
begin
  if Dm.adoLP.Active then
    frmMain.Caption:=frmMainCap+' [当前用户:'+Dm.adoLP.FieldByName('Name').AsString+'] ['+DateTimeToStr(Now)+']'
  else
    frmMain.Caption:=frmMainCap+' ['+DateTimeToStr(Now)+']';
end;

end.

⌨️ 快捷键说明

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