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

📄 main.~pas

📁 该文件主要应用于档案资料管理
💻 ~PAS
字号:
unit Main;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdActns, ActnList, ComCtrls, ToolWin, Menus, ImgList, ExtCtrls;

type
  TMainFrm = class(TForm)
    MainMenu1: TMainMenu;
    ActionList1: TActionList;
    ImageList1: TImageList;
    M_Security: TMenuItem;
    M_Archives: TMenuItem;
    M_Windows: TMenuItem;
    M_Help: TMenuItem;
    CoolBar1: TCoolBar;
    ToolBar1: TToolBar;
    WindowCascade1: TWindowCascade;
    WindowTileHorizontal1: TWindowTileHorizontal;
    WindowTileVertical1: TWindowTileVertical;
    WindowMinimizeAll1: TWindowMinimizeAll;
    WindowCloseAll: TWindowClose;
    M_Pass_Modify: TMenuItem;
    M_Quit: TMenuItem;
    M_Class: TMenuItem;
    M_Tank: TMenuItem;
    M_Separator2: TMenuItem;
    M_Manage: TMenuItem;
    M_Borrow: TMenuItem;
    M_Rerurn: TMenuItem;
    M_Win_Cascade: TMenuItem;
    M_Win_Hor: TMenuItem;
    M_Win_Ver: TMenuItem;
    M_Win_Min: TMenuItem;
    M_Win_Close: TMenuItem;
    TB_Manage: TToolButton;
    TB_Borrow: TToolButton;
    TB_Return: TToolButton;
    StatusBar1: TStatusBar;
    M_Separator1: TMenuItem;
    M_Login: TMenuItem;
    M_Disconnect: TMenuItem;
    Timer1: TTimer;
    procedure WindowCloseAllExecute(Sender: TObject);
    procedure WindowCloseAllUpdate(Sender: TObject);
    procedure M_ClassClick(Sender: TObject);
    procedure M_TankClick(Sender: TObject);
    procedure M_ManageClick(Sender: TObject);
    procedure M_BorrowClick(Sender: TObject);
    procedure M_RerurnClick(Sender: TObject);
    procedure M_HelpClick(Sender: TObject);
    procedure TB_ManageClick(Sender: TObject);
    procedure TB_BorrowClick(Sender: TObject);
    procedure TB_ReturnClick(Sender: TObject);
    procedure M_QuitClick(Sender: TObject);
    procedure M_Pass_ModifyClick(Sender: TObject);
    procedure M_DisconnectClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure M_LoginClick(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    Login:boolean;  
    function CreateForm(CForm:TForm):boolean;  //用户自定义MDIChild子窗体存在判断函数
  end;

var
  MainFrm: TMainFrm;
implementation
  uses DataModule, Archives_Class, Archives_Tank,Archives_Manage,Archives_BReturn,Archives_AboutBox,PasswordChange,
  Login;
{$R *.dfm}

function TMainFrm.CreateForm(CForm:TForm):boolean;
var
  i:integer;
  FormExist:boolean;
begin
  FormExist:=false;

  if(CForm=Nil) then  //判断CFrom是否为空
    begin
     CreateForm:=false;  //函数返回值赋false
     exit;               //退出本函数
    end;
  for i:=0 to Screen.FormCount-1 do //判断窗体是否已经建立起来
    if Screen.Forms[i].ClassType=CForm.ClassType then  //判断窗体存在
       FormExist:=true;

  if FormExist=false then    //窗体没有创建,返回false;
     begin
       CreateForm:=false;  //函数返回值赋false
     exit;                //退出本函数
     end;


  if CForm.WindowState=wsMinimized then
    ShowWindow(CForm.Handle,SW_SHOWNORMAL) //显示窗体
    else
    ShowWindow(CForm.Handle,SW_SHOWNA); //显示窗体

  if not CForm.Visible then
    CForm.Visible:=true;

  CForm.BringToFront;  //当前窗口显示在最前面
  CForm.SetFocus;
  CreateForm:=true;
end;

procedure TMainFrm.WindowCloseAllExecute(Sender: TObject);
var
   i:integer;
begin
  for i:=0 to MDIChildCount-1 do  //MDIChildCount取得当前MDI子窗口的个数
   MDIChildren[i].Close;          //关闭所有MDI子窗口
end;

procedure TMainFrm.WindowCloseAllUpdate(Sender: TObject);
begin
  if MDICHildCount>0 then                 //是否有MDI子窗口创建判断
    (Sender as TAction).Enabled:=true     //关闭所有MDI子窗口菜单使用
  else
    (Sender as TAction).Enabled:=false;   //关闭所有MDI子窗口菜单非使用
end;

procedure TMainFrm.M_ClassClick(Sender: TObject);
begin
 if CreateForm(ClassFrm)=false then     //调用判断档案分类管理窗体是否存在函数
    Application.CreateForm(TClassFrm, ClassFrm);   //动态创建档案分类管理窗体
  DM.DS_Class.Enabled:=true;  //档案资料数据源控件处于使能状态,与提交、取消按钮数据感知控件建立关联关系
end;

procedure TMainFrm.M_TankClick(Sender: TObject);
begin
 //  if CreateForm(TankFrm)=false then        //调用判断档案柜资料管理窗体是否存在函数
   Application.CreateForm(TTankFrm, TankFrm);   //动态创建档案柜资料管理窗体
   DM.DS_Class.Enabled:=true;  //档案资料数据源控件处于使能状态,与提交、取消按钮数据感知控件建立关联关系
end;

procedure TMainFrm.M_ManageClick(Sender: TObject);
begin
  // if CreateForm(ManageFrm)=false then    //调用判断档案资料管理窗体是否存在函数
    Application.CreateForm(TManageFrm, ManageFrm);    //动态创建档案资料管理窗体
   DM.DS_Manage.Enabled:=true;  //档案资料数据源控件处于使能状态,与提交、取消按钮数据感知控件建立关联关系
end;

procedure TMainFrm.M_BorrowClick(Sender: TObject);
begin
  // if CreateForm(BReturnFrm)=false then        //调用判断档案借用管理窗体是否存在函数
    Application.CreateForm(TBReturnFrm, BReturnFrm);     //动态创建档案借用管理窗体
    BReturnFrm.PageControl1.ActivePage:=BReturnFrm.PageControl1.Pages[0];
   DM.DS_Borrow.Enabled:=true;  //档案资料数据源控件处于使能状态,与提交、取消按钮数据感知控件建立关联关系
end;

procedure TMainFrm.M_RerurnClick(Sender: TObject);
begin
  // if CreateForm(BReturnFrm)=false then      //调用判断档案归还管理窗体是否存在函数
    Application.CreateForm(TBReturnFrm, BReturnFrm);   //动态创建档案归还管理窗体
   BReturnFrm.PageControl1.ActivePage:=BReturnFrm.PageControl1.Pages[1];
   DM.DS_Return.Enabled:=true;  //档案资料数据源控件处于使能状态,与提交、取消按钮数据感知控件建立关联关系
end;

procedure TMainFrm.M_HelpClick(Sender: TObject);
begin
   try
     ABoxFrm:=TABoxFrm.Create(Application);
     ABoxFrm.ShowModal;
   Except
     on e:exception do
     Application.ShowException(e);
   end;
end;

procedure TMainFrm.TB_ManageClick(Sender: TObject);
begin
 //  if CreateForm(ManageFrm)=false then    //调用判断档案资料管理窗体是否存在函数
   Application.CreateForm(TManageFrm, ManageFrm);   //动态创建档案资料管理窗体
   DM.DS_Manage.Enabled:=true;  //档案资料数据源控件处于使能状态,与提交、取消按钮数据感知控件建立关联关系
end;

procedure TMainFrm.TB_BorrowClick(Sender: TObject);
begin
 //   if CreateForm(BReturnFrm)=false then        //调用判断档案借用管理窗体是否存在函数
    Application.CreateForm(TBReturnFrm, BReturnFrm); //动态创建档案借用管理窗体
    BReturnFrm.PageControl1.ActivePage:=BReturnFrm.PageControl1.Pages[0];
    DM.DS_Borrow.Enabled:=true;  //档案资料数据源控件处于使能状态,与提交、取消按钮数据感知控件建立关联关系
end;

procedure TMainFrm.TB_ReturnClick(Sender: TObject);
begin
 //   if CreateForm(BReturnFrm)=false then      //调用判断档案归还管理窗体是否存在函数
    Application.CreateForm(TBReturnFrm, BReturnFrm); //动态创建档案归还管理窗体
   BReturnFrm.PageControl1.ActivePage:=BReturnFrm.PageControl1.Pages[1];
   DM.DS_Return.Enabled:=true;  //档案资料数据源控件处于使能状态,与提交、取消按钮数据感知控件建立关联关系
end;

procedure TMainFrm.M_QuitClick(Sender: TObject);
begin
  Application.Terminate;     //关闭所有窗口
end;

procedure TMainFrm.M_Pass_ModifyClick(Sender: TObject);
begin
 //  if CreateForm(PasswordChangeFrm)=false then
   Application.CreateForm(TPasswordChangeFrm, PasswordChangeFrm);
   PasswordChangeFrm.Show;
end;

procedure TMainFrm.M_DisconnectClick(Sender: TObject);
var
   i:integer;
begin
   for i:=MDIChildCount-1 downto 0 do
   begin
   MainFrm.MDIChildren[i].Close;
   CreateForm(nil);
   end;
   DM.ADOConnection1.Connected:=False;
   M_Login.Enabled:=true;
   M_Disconnect.Enabled:=false;
   M_Class.Enabled:=false;
   M_Tank.Enabled:=false;
   M_Manage.Enabled:=false;
   M_Borrow.Enabled:=false;
   M_Rerurn.Enabled:=false;
   TB_Manage.Enabled:=false;
   TB_Borrow.Enabled:=false;
   TB_Return.Enabled:=false;
   M_Pass_Modify.Enabled:=false;
   StatusBar1.Panels[1].Text:='尚未登录!请按F2登录。';

end;

procedure TMainFrm.FormCreate(Sender: TObject);
begin
   //初始化
   M_Login.Enabled:=true;
   M_Disconnect.Enabled:=false;
   M_Class.Enabled:=false;
   M_Tank.Enabled:=false;
   M_Manage.Enabled:=false;
   M_Borrow.Enabled:=false;
   M_Rerurn.Enabled:=false;
   TB_Manage.Enabled:=false;
   TB_Borrow.Enabled:=false;
   TB_Return.Enabled:=false;
   M_Pass_Modify.Enabled:=false;
   StatusBar1.Panels[1].Text:='尚未登录!请按F2登录。';

end;

procedure TMainFrm.M_LoginClick(Sender: TObject);
begin
   DM.ADOConnection1.Connected:=true;
   DM.A_User.Active:=true;
   LoginFrm.DBComboBox1.ReadOnly:=false;
   LoginFrm.ShowModal;
   if Login then
     begin
      M_Login.Enabled:=false;
      M_Disconnect.Enabled:=true;
      M_Class.Enabled:=true;
      M_Tank.Enabled:=true;
      M_Manage.Enabled:=true;
      M_Borrow.Enabled:=true;
      M_Rerurn.Enabled:=true;
      TB_Manage.Enabled:=true;
      TB_Borrow.Enabled:=true;
      TB_Return.Enabled:=true;
      M_Pass_Modify.Enabled:=true;
      StatusBar1.Panels[1].Text:='登录用户:'+LoginFrm.User;
      DM.AQ_Manage.Active:=true;
      DM.A_Class.Active:=true;
      DM.A_Return.Active:=true;
      DM.A_Tank.Active:=true;
      DM.A_Borrow.Active:=true;
      DM.A_Count.Active:=true;
    end;
end;

procedure TMainFrm.Timer1Timer(Sender: TObject);
begin
   statusbar1.Panels[2].text:=datetostr(date);
   statusbar1.Panels[3].text:=timetostr(time);//系统时间
end;

end.

⌨️ 快捷键说明

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