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

📄 main.pas.~pas

📁 适合新手 绝对精品 档案管理系统 本人花钱购买来的源代
💻 ~PAS
字号:
unit Main;        //MDI主窗体项目

interface

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

type
  TF_Main = class(TForm)
    MainMenu1: TMainMenu;
    S1: TMenuItem;
    M_Archives: TMenuItem;
    M_Class: TMenuItem;
    M_Tank: TMenuItem;
    N2: TMenuItem;
    M_Manage: TMenuItem;
    M_Borrow: TMenuItem;
    M_Return: TMenuItem;
    M_Database: TMenuItem;
    M_Backup: TMenuItem;
    M_Restore: TMenuItem;
    M_Window: TMenuItem;
    M_Win_Cascade: TMenuItem;
    M_Win_Hor: TMenuItem;
    M_Win_Ver: TMenuItem;
    M_Win_Min: TMenuItem;
    M_Win_Close: TMenuItem;
    M_Help: TMenuItem;
    ImageList1: TImageList;
    ActionList1: TActionList;
    WindowCascade1: TWindowCascade;
    WindowTileHorizontal1: TWindowTileHorizontal;
    WindowTileVertical1: TWindowTileVertical;
    WindowMinimizeAll1: TWindowMinimizeAll;
    WindowCloseAll: TAction;
    SaveDialog1: TSaveDialog;
    OpenDialog1: TOpenDialog;
    CoolBar1: TCoolBar;
    ToolBar1: TToolBar;
    TB_Manage: TToolButton;
    TB_Borrow: TToolButton;
    TB__Return: TToolButton;
    TB_Separator: TToolButton;
    TB_Backup: TToolButton;
    TB_Restore: TToolButton;
    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_ReturnClick(Sender: TObject);
    procedure M_BackupClick(Sender: TObject);
    procedure M_RestoreClick(Sender: TObject);
    procedure M_HelpClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    function CreateForm(CForm:TForm):boolean;  //用户自定义MDIChild子窗体存在判断函数
    procedure BackupDatabase(FileName:AnsiString);  //用户自定义备份SQL Server 2000数据库函数
    procedure RestoreDatabase(FileName:AnsiString); //用户自定义还原SQL Server 2000数据库函数
  end;

var
  F_Main: TF_Main;

implementation
uses  DataModule,Archives_Class,Archives_Tank,Archives_Manage,
      Borrow_Return,Archives_AboutBox,IniFiles;  //引用其它项目 
{$R *.dfm}

function TF_Main.CreateForm(CForm:TForm):boolean;
var  {*****用户自定义MDIChild子窗体存在判断函数*****}
    No:integer;
    FormExist:boolean;
begin
    FormExist := false;
    if (CForm = NiL) then   //判断CForm是否为空
       begin
       CreateForm := false; //函数返回值赋false
       exit;                //退出本函数
       end;
    for No:=0 to Screen.FormCount-1 do //判断窗体是否已经被建立起来
      begin
      if Screen.Forms[No].ClassType = CForm.ClassType then  //窗体存在判断
        FormExist := true;  //窗体已经创建,用户没看到可能是处于隐藏或者最小化
      end;
    if FormExist = false then //窗体没有创建,返回false
      CreateForm := false;
    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;    //函数返回值赋true
end;

procedure TF_Main.BackupDatabase(filename:AnsiString);
var  {*****用户自定义备份SQL Server 2000数据库函数*****}
    Backup,str:AnsiString;
    ini:TIniFile;
begin
    DM.AQ_Back_Restore.Close;      //关闭数据库备份还原查询控件
    DM.AQ_Back_Restore.SQL.Clear;  //清除SQL语句
    Backup := 'BACKUP DATABASE ';  //生成数据库备份命令赋Backup字符串
    //打开档案管理系统数据库INI配置文件,如果不存在则创建
    ini := TIniFile.Create(ChangeFileExt(Application.ExeName,'.INI'));
    str := ini.ReadString('Database','Initial Catalog','Archives'); //从配置文件读数据库名
    Backup := Backup+str;  //追加档案管理系统数据库名,+1的目的是前面有个空格
    DM.AQ_Back_Restore.SQL.Add(Backup); //增加备份数据库RESTORE命令SQL语句
    str := 'TO DISK =''';  //生成备份数据库文件的路径和文件名字符串
    str := str+filename;
    str := str+'''';
    DM.AQ_Back_Restore.SQL.Add(str);  //增加备份数据库的路径和文件名字符串SQL语句
    DM.AQ_Back_Restore.SQL.Add('WITH init'); //备份数据库SQL语句WITH参数设定,完整备份数据库
    try        //捕捉异常
      DM.AQ_Back_Restore.ExecSQL;     //执行SQL语句,但不打开数据集
    except     //抛出异常
      Application.MessageBox('数据库备份出错', '错误!', MB_OK);
    end;
end;

procedure TF_Main.RestoreDatabase(filename:AnsiString);
var  {*****用户自定义还原SQL Server 2000数据库函数*****}
   Restore,str:AnsiString;
   ini:TIniFile;
begin
    DM.AQ_Back_Restore.Close;       //关闭数据库备份还原查询控件
    DM.AQ_Back_Restore.SQL.Clear;  //清除SQL语句
    Restore := 'RESTORE DATABASE ';  //生成数据库还原命令赋Restore字符串
    //打开档案管理系统数据库INI配置文件
    ini := TIniFile.Create(ChangeFileExt(Application.ExeName,'.INI' ));
    str := ini.ReadString('Database','Initial Catalog','Archives'); //从配置文件读数据库名
    Restore := Restore+str;  //追加档案管理系统数据库名
    DM.AQ_Back_Restore.SQL.Add(Restore);     //增加还原数据库SQL命令语句
    str := 'FROM DISK = ''';   //生成还原数据库文件的路径和文件名字符串
    str := str+filename;
    str := str+'''';
    DM.AQ_Back_Restore.SQL.Add(str); //增加还原数据库文件的路径和文件名字符串SQL语句
    DM.AQ_Back_Restore.SQL.Add(' WITH norecovery'); //还原数据库SQL语句WITH参数设定,完整还原数据库
    try        //捕捉异常
      DM.AQ_Back_Restore.ExecSQL;     //执行SQL语句,但不打开数据集
    except     //抛出异常
      Application.MessageBox('数据库恢复出错', '错误!', MB_OK);
    end;
end;

procedure TF_Main.WindowCloseAllExecute(Sender: TObject);
var  {*****操作列表控件ActionList1中WindowCloseAll操作执行事件*****}
    i:integer;
begin
    for i:=0 to MDIChildCount-1 do  //MDIChildCount取得当前MDI子窗口的个数
      MDIChildren[i].Close;       //关闭所有MDI子窗口
end;

procedure TF_Main.WindowCloseAllUpdate(Sender: TObject);
begin  {*****操作列表控件ActionList1中WindowCloseAll操作Updata事件*****}
    if MDIChildCount>0 then  //是否有MDI子窗口创建判断
      (Sender as TAction).Enabled := true  //关闭所有MDI子窗口菜单使能
    else
      (Sender as TAction).Enabled := false; //关闭所有MDI子窗口菜单非使能
end;

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

procedure TF_Main.M_TankClick(Sender: TObject);
begin  {*****档案柜资料管理菜单项单击事件*****}
    if CreateForm(F_Tank) = false then       //CreateForm调用判断档案柜资料管理窗体是否存在函数
      F_Tank := TF_Tank.Create(Application);  //动态创建档案柜资料管理窗体
    DM.DS_Tank.Enabled := true; //档案柜资料数据源控件处于使能态,与提交、取消按钮数据感知控件建立关联关系
end;

procedure TF_Main.M_ManageClick(Sender: TObject);
begin  {*****档案管理菜单项单击事件*****}
    if CreateForm(F_Manage) = false then       //CreateForm调用判断档案管理窗体是否存在函数
      F_Manage := TF_Manage.Create(Application);  //动态创建档案管理窗体
    DM.DS_Manage.Enabled := true;          //档案管理数据源控件处于使能态,与提交、取消按钮数据感知控件建立关联关系
end;

procedure TF_Main.M_BorrowClick(Sender: TObject);
begin  {*****档案借用管理菜单项单击事件*****}
    if CreateForm(F_BReturn) = false then       //CreateForm调用判断档案借用管理窗体是否存在函数
      F_BReturn := TF_BReturn.Create(Application);  //动态创建档案借用管理窗体
    F_BReturn.PageControl1.ActivePage := F_BReturn.PageControl1.Pages[0];  //设定ActivePage为借用档案管理标签页
    DM.DS_Borrow.Enabled := true;           //档案借用管理数据源控件处于使能态,与提交、取消、删除等按钮数据感知控件建立关联关系
end;

procedure TF_Main.M_ReturnClick(Sender: TObject);
begin  {*****档案归还管理菜单项单击事件*****}
    if CreateForm(F_BReturn) = false then       //CreateForm调用判断档案归还管理窗体是否存在函数
      F_BReturn := TF_BReturn.Create(Application);  //动态创建档案归还管理窗体
    F_BReturn.PageControl1.ActivePage := F_BReturn.PageControl1.Pages[1];  //设定ActivePage为归还档案管理标签页
    DM.DS_Return.Enabled := true;           //档案归还管理数据源控件处于使能态,与提交、取消、删除等按钮数据感知控件建立关联关系
end;

procedure TF_Main.M_BackupClick(Sender: TObject);
var
    i:integer;
    str:AnsiString;
begin  {*****数据备份菜单项单击事件*****}
    if SaveDialog1.Execute then  //用户打开数据库备份对话框后选择了保存按钮
      begin
      if FileExists(SaveDialog1.FileName) then
        begin
        str := SaveDialog1.FileName+'文件已经存在,要替换它吗?';
        i := MessageBox(NULL,pchar(str),'另存为',MB_OKCANCEL);
        if i = mrOk then   //用户确定了替换操作
          begin
          BackupDatabase(SaveDialog1.FileName);  //BackupDatabase是用户自定义备份数据库函数
          exit;
          end
        else               //用户取消了替换操作
          exit;
        end;
      BackupDatabase(SaveDialog1.FileName);  //BackupDatabase是用户自定义备份数据库函数
      end;
end;

procedure TF_Main.M_RestoreClick(Sender: TObject);
begin  {*****数据还原菜单项单击事件*****}
    if OpenDialog1.Execute then  //用户打开数据库还原对话框后选择了打开按钮
      RestoreDatabase(OpenDialog1.FileName);  //RestoreDatabase是用户自定义还原数据库函数
end;

procedure TF_Main.M_HelpClick(Sender: TObject);
begin  {*****帮助菜单项单击事件*****}
    try
      F_ABox := TF_ABox.Create(Application);    //动态创建关于窗体
      F_ABox.ShowModal;                         //显示关于窗口
    except
      on e: exception do
      Application.ShowException(e);    //弹出异常对话框
    end;
end;


end.

⌨️ 快捷键说明

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