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

📄 umainf.pas

📁 图书馆使用的图书管理系统
💻 PAS
📖 第 1 页 / 共 2 页
字号:
unit uMainF;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  Menus, ToolWin, ComCtrls, ExtCtrls, jpeg, ActnList, Buttons, AppEvnts,
  DB, DBTables;
type
  TMainF = class(TForm)
    MainMenu1: TMainMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    N3: TMenuItem;
    N4: TMenuItem;
    N8: TMenuItem;
    N5: TMenuItem;
    N7: TMenuItem;
    jh: TMenuItem;
    N10: TMenuItem;
    cx: TMenuItem;
    N12: TMenuItem;
    ybyh: TMenuItem;
    tsyh: TMenuItem;
    N15: TMenuItem;
    rk: TMenuItem;
    ql: TMenuItem;
    xg: TMenuItem;
    StatusBar1: TStatusBar;
    N6: TMenuItem;
    sjlj: TMenuItem;
    ActionList1: TActionList;
    Action1: TAction;
    CoolBar1: TCoolBar;
    Panel4: TPanel;
    SpeedButton1: TSpeedButton;
    SpeedButton2: TSpeedButton;
    Panel5: TPanel;
    SpeedButton3: TSpeedButton;
    SpeedButton4: TSpeedButton;
    SpeedButton5: TSpeedButton;
    SpeedButton6: TSpeedButton;
    SpeedButton7: TSpeedButton;
    Panel1: TPanel;
    Image1: TImage;
    Image2: TImage;
    Panel3: TPanel;
    Panel2: TPanel;
    Panel6: TPanel;
    SpeedButton8: TSpeedButton;
    SpeedButton9: TSpeedButton;
    SpeedButton10: TSpeedButton;
    Panel7: TPanel;
    SpeedButton11: TSpeedButton;
    N9: TMenuItem;
    N11: TMenuItem;
    N13: TMenuItem;
    N14: TMenuItem;
    N16: TMenuItem;
    N17: TMenuItem;
    N18: TMenuItem;
    ApplicationEvents1: TApplicationEvents;
    Query1: TQuery;
    N19: TMenuItem;
    N20: TMenuItem;
    procedure N4Click(Sender: TObject);
    procedure N2Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Panel1Resize(Sender: TObject);
    procedure jhClick(Sender: TObject);
    procedure Panel2Resize(Sender: TObject);
    procedure cxClick(Sender: TObject);
    procedure xgClick(Sender: TObject);
    procedure rkClick(Sender: TObject);
    procedure qlClick(Sender: TObject);
    procedure ybyhClick(Sender: TObject);
    procedure tsyhClick(Sender: TObject);
    procedure sjljClick(Sender: TObject);
    procedure N15Click(Sender: TObject);
    procedure FormPaint(Sender: TObject);
    procedure Action1Execute(Sender: TObject);
    procedure SpeedButton1Click(Sender: TObject);
    procedure SpeedButton2Click(Sender: TObject);
    procedure SpeedButton3Click(Sender: TObject);
    procedure SpeedButton4Click(Sender: TObject);
    procedure SpeedButton5Click(Sender: TObject);
    procedure SpeedButton6Click(Sender: TObject);
    procedure SpeedButton7Click(Sender: TObject);
    procedure SpeedButton8Click(Sender: TObject);
    procedure SpeedButton9Click(Sender: TObject);
    procedure SpeedButton10Click(Sender: TObject);
    procedure SpeedButton11Click(Sender: TObject);
    procedure N11Click(Sender: TObject);
    procedure N13Click(Sender: TObject);
    procedure N14Click(Sender: TObject);
    procedure N16Click(Sender: TObject);
    procedure N18Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure ApplicationEvents1Message(var Msg: tagMSG;
      var Handled: Boolean);
    procedure ApplicationEvents1Deactivate(Sender: TObject);
    procedure FormActivate(Sender: TObject);
    procedure N20Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    { Private declarations }
  public
    { Public declarations }
    Loged : integer;
    UserName , UserPwd : string;
    function CheckUser(AUserName , AUserPwd : string):integer;
    procedure Init(P : integer);
    procedure InitView;
  end;

var
  MainF: TMainF;

implementation

uses uLogF, uGloabVar,uLandF, uQueryF, uEditF, uNewF, uReEditF,
  uUesrMgrF, uShowBookF, uMgrUserF, uDataPathF, uAboutF, uControlsViewF;

{$R *.DFM}

//procedure ShowWinHookF;stdcall;external 'D:\Borland\Delphi6\Projects\lib\WinHook\WinHook.dll' name 'ShowWinHookF';

procedure TMainF.N4Click(Sender: TObject);
begin
  Close;
end;


function TMainF.CheckUser(AUserName , AUserPwd : string):integer;
var
  Query : TQuery;
begin
  try
    Query := TQuery.Create(nil);
    Query.DatabaseName := DBName;
    Query.SQL.Add('select * from tsyhb where UserName=:UserName');
    Query.ParamByName('UserName').AsString := AUserName;
    Query.Open;
    if Query.RecordCount = 0 then
    begin
      MessageDlg('用户名错误',mtError,[mbok],0);
      Result := -1;
      Exit;
    end else begin
      if Query.FieldByName('UserPwd').AsString <> AUserPwd then
      begin
        MessageDlg('用户名或口令错误',mtError,[mbok],0);
        Result := -1;
        Exit;
      end
      else Result := Query.FieldByName('Class').AsInteger;
    end;
    Query.Close;
    Query.Free;
  except
     Result := -1;
     MessageDlg('连接数据库出错',mtError,[mbok],0);
  end;
end;

procedure TMainF.Init(P: integer);
begin
  case P of
    -1 : begin
           N5.Enabled := True;
           N12.Enabled := True;
           rk.Enabled := False;
           SpeedButton3.Enabled := False;
           ql.Enabled := False;
           SpeedButton4.Enabled := False;
           xg.Enabled := False;
           SpeedButton5.Enabled := False;
           jh.Enabled := False;
           SpeedButton6.Enabled := False;
           cx.Enabled := False;
           SpeedButton7.Enabled := False;
           ybyh.Enabled := False;
           SpeedButton8.Enabled := False;
           tsyh.Enabled := False;
           SpeedButton9.Enabled := False;
           sjlj.Enabled := True;
           SpeedButton10.Enabled := True;
           StatusBar1.Panels[0].Text := '没有用户登录';
           StatusBar1.Panels[1].Text := '';

           UserName := '';
           UserPwd := '';
           InitView;
         end;
    0  : begin
           N5.Enabled := True;
           N12.Enabled := True;
           rk.Enabled := True;
           SpeedButton3.Enabled := True;
           ql.Enabled := True;
           SpeedButton4.Enabled := True;
           xg.Enabled := True;
           SpeedButton5.Enabled := True;
           jh.Enabled := True;
           SpeedButton6.Enabled := True;
           cx.Enabled := True;
           SpeedButton7.Enabled := True;
           ybyh.Enabled := True;
           SpeedButton8.Enabled := True;
           tsyh.Enabled := True;
           SpeedButton9.Enabled := True;
           sjlj.Enabled := True;
           SpeedButton10.Enabled := True;
           StatusBar1.Panels[0].Text := '用户名:'+UserName;
           StatusBar1.Panels[1].Text := '用户描述:超级用户';
         end;
    1  : begin
           N5.Enabled := True;
           N12.Enabled := True;
           rk.Enabled := True;
           SpeedButton3.Enabled := True;
           ql.Enabled := True;
           SpeedButton4.Enabled := True;
           xg.Enabled := True;
           SpeedButton5.Enabled := True;
           jh.Enabled := True;
           SpeedButton6.Enabled := True;
           cx.Enabled := True;
           SpeedButton7.Enabled := True;
           sjlj.Enabled := True;
           SpeedButton10.Enabled := True;
           ybyh.Enabled := True;
           SpeedButton8.Enabled := True;
           tsyh.Enabled := False;
           SpeedButton9.Enabled := False;
           StatusBar1.Panels[0].Text := '用户名:'+UserName;
           StatusBar1.Panels[1].Text := '用户描述:一般管理员';
         end;
    2  : begin
           N5.Enabled := True;
           N12.Enabled := True;
           rk.Enabled := False;
           SpeedButton3.Enabled := False;
           ql.Enabled := False;
           SpeedButton4.Enabled := False;
           xg.Enabled := False;
           SpeedButton5.Enabled := False;
           jh.Enabled := True;
           SpeedButton6.Enabled := True;
           cx.Enabled := True;
           SpeedButton7.Enabled := True;
           sjlj.Enabled := True;
           SpeedButton10.Enabled := True;
           ybyh.Enabled := False;
           SpeedButton8.Enabled := False;
           tsyh.Enabled := False;
           SpeedButton9.Enabled := False;
           StatusBar1.Panels[0].Text := '用户名:'+UserName;
           StatusBar1.Panels[1].Text := '用户描述:操作员';
          end;
  end;
end;

procedure TMainF.N2Click(Sender: TObject);
begin
  if Loged = -1 then
  begin
    if LogF.ShowModal = mrok then
    begin
      UserName := LogF.Edit1.Text;
      UserPwd := LogF.Edit2.Text;
      Loged := CheckUser(UserName,UserPwd);
    end
    else Loged := -1;
    if Loged <> -1 then
    begin
      Init(Loged);
      N2.Caption := '注销';
      SpeedButton1.Caption := '注销';
      ShowBookF := TShowBookF.Create(nil);
    end;
  end
  else begin
    if MessageBox(0,PChar('确实要注销用户:'+UserName+'?'),'注销',MB_ICONQUESTION or MB_YESNO)=IDNO then
      Exit;
    Loged := -1;
    Init(-1);
    N2.Caption := '登录';
    SpeedButton1.Caption := '登录';
    ShowBookF.Free;
  end;

end;

procedure TMainF.FormCreate(Sender: TObject);
begin
  N11.Checked := ViewOper;
  CoolBar1.Bands[0].Visible := N11.Checked;
  N13.Checked := ViewBookMgr;
  CoolBar1.Bands[1].Visible := N13.Checked;
  N14.Checked := ViewSettingMgr;
  CoolBar1.Bands[2].Visible := N14.Checked;
  N16.Checked := ViewAbout;
  CoolBar1.Bands[3].Visible := N16.Checked;
  N18.Checked := ViewBack;
  //N19.Enabled := N18.Checked;
  Image2.Free;
  Image2 := nil;
  Loged := -1;
  Init(Loged);

end;

procedure TMainF.Panel1Resize(Sender: TObject);
begin
  Panel2.Top := (Panel1.Height - Panel2.Height)div 2;
  Panel2.Left := (Panel1.Width - Panel2.Width)div 2;
  Panel3.Width := Panel2.Width;
  Panel3.Height := Panel2.Height;
  Panel3.Top := Panel2.Top +5;
  Panel3.Left := Panel2.Left + 5;

end;

procedure TMainF.jhClick(Sender: TObject);
begin
  if LandF <> nil then
    if LandF.Parent <> nil then
      LandF.Parent := Panel2
    else InitView
  else InitView;
  if LandF = nil then
  begin

    LandF := TLandF.Create(nil);
    LandF.Parent := nil;
    Caption := '图书管理系统-图书借还';
    LandF.Parent := Panel2;
    Panel1Resize(Sender);
    LandF.Init;

  end;
end;

procedure TMainF.InitView;
begin
  try
    MainF.Caption := '图书管理系统';
    if QueryF <> nil then
    begin
      QueryF.Free;
      QueryF := nil;
    end;

    if LandF <> nil then
    begin
      LandF.Free;
      LandF := nil;
    end;

    if EditF <> nil then
    begin
      EditF.Free;
      EditF := nil;
    end;

    if NewF <> nil then
    begin
      NewF.Free;
      NewF := nil;
    end;

    if ReEditF <> nil then
    begin

⌨️ 快捷键说明

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