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

📄 databackupfrm.pas

📁 考勤管理是企业内部管理的重要环节和基础
💻 PAS
字号:
unit DataBackupFrm;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  SDIfrm, ComCtrls, Buttons, StdCtrls, ExtCtrls, FileCtrl, DBTables, Pg2;

const
  WM_ThreadDoneMsg = WM_User + 8;

resourcestring
  sMDir='指定目录不存在,创建该目录吗?';
  sReMDir='指定目录不存在,不能进行恢复!!';
  sNotDir='指定目录不是工资管理系统的数据备份目录,请重新指定目录!!';
  sundir='不能创建';
  sdir='目录';
  sCaption='处理进度显示';
  sLCaption='正在进行数据备份,请等候!';
  sBackup='数据备份';
  sRestore='正在进行数据恢复,请等候!';
  sDataCopy='正在进行数据复制,请等候!';
type
  TDataBackupForm = class(TSDIForm)
    Label1: TLabel;
    Edit1: TEdit;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    dlbDirectory: TDirectoryListBox;
    dcbDrive: TDriveComboBox;
    Label2: TLabel;
    Label3: TLabel;
    ProgressBar1: TProgressBar;
    procedure FormCreate(Sender: TObject);
    procedure dlbDirectoryClick(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure dcbDriveClick(Sender: TObject);
  private
    Thread1Active : boolean; // used to test if thread 1 is active
    { Private declarations }
  public
    { Public declarations }
  end;

var
  DataBackupForm: TDataBackupForm;

implementation

uses ProgressFrm, dialog, unDM2, Globals, SumFrm;

{$R *.DFM}

procedure TDataBackupForm.FormCreate(Sender: TObject);
begin
  inherited;
  Thread1Active := false;
  dcbDrive.DirList := dlbDirectory;
  Edit1.text:=dlbDirectory.GetItemPath(dlbDirectory.ItemIndex);
end;

procedure TDataBackupForm.dlbDirectoryClick(Sender: TObject);
begin
  inherited;
  Edit1.text:=dlbDirectory.GetItemPath(dlbDirectory.ItemIndex);
end;

procedure TDataBackupForm.BitBtn1Click(Sender: TObject);
var
  oldFileName, NewFileName, formcaption:string;
begin
  inherited;
  formcaption:=Caption;
  if Caption=Pchar(sBackup) then begin
    if not DirectoryExists(Trim(Edit1.Text)) then
      if messagedlg(Pchar(sMDir),mtConfirmation,[mbYes,mbNo],0)<>mrYes then
        Abort
      else if not CreateDir(Trim(Edit1.Text)) then begin raise
        Exception.Create(Pchar(sundir)+Trim(Edit1.Text)+Pchar(sdir));
        Abort;
      end;
  end else if not DirectoryExists(Trim(Edit1.Text)) then begin
    messagedlg(Pchar(sMDir),mtError,[mbOK],0);
    Abort;
  end else if not FileExists(Trim(Edit1.Text)+'\'+WorkDir+'.mdb') then begin
      messagedlg(Pchar(sNotDir),mtError,[mbOK],0);
      Abort;
  end else begin
    DM2.Database.Close;
 end;
  hide;
  SumForm:=TSumForm.Create(Self);
  sumForm.Color:=clBackground;
  sumForm.Label1.Font.Color:=clWhite;
  SumForm.Label1.Caption:=Pchar(sDataCopy);
  SumForm.Animate1.FileName:=OldDir+'\Play.avi';
  SumForm.Animate1.Active:=True;
  SumForm.Show;
  SumForm.Update;
{  caption:=Pchar(sCaption);
  Height:=100;
  BorderIcons:=[];
  Position:=poScreenCenter;
  edit1.Visible:=False;
  dlbDirectory.Visible:=False;
  dcbDrive.Visible:=False;
  BitBtn2.Visible:=False;
  ProgressBar1.Visible:=True;
  label2.Visible:=False;
  Label3.Visible:=False;
}
//  show;
  Label1.Caption:=Pchar(sLCaption);
//  ProgressBar1.Max:=a;
{  if (MyThread1 = nil) or (Thread1Active = false) then // make sure its not already running
  begin
    MyThread1 := TMyThread.CreateIt(0, ProgressBar1);
    Thread1Active := true;
  end;
}//   else
//     ShowMessage('Thread still executing');
  if formcaption<>Pchar(sBackup) then begin
    NewFileName:=OldDir+'\data\'+WorkDir+'\'+WorkDir+'.mdb';
    OldFileName:=Trim(Edit1.Text)+'\'+WorkDir+'.mdb';
  end else begin
    OldFileName:=OldDir+'\data\'+WorkDir+'\'+WorkDir+'.mdb';
    NewFileName:=Trim(Edit1.Text)+'\'+WorkDir+'.mdb';
  end;
  if not CopyFile(PChar(OldFileName),Pchar(NewFileName),False) = True then
     messagedlg(Pchar('asdfad'),mtError,[mbOK],0);
  if formcaption<>Pchar(sBackup) then begin
    DM2.DataBase.Connected:=True;
  end;
{  if (MyThread1 <> nil) and (Thread1Active = true) then  // check to see if it is running
    MyThread1.Terminate;
}
  SumForm.Hide;
  show;
  BitBtn2.click;
end;

procedure TDataBackupForm.dcbDriveClick(Sender: TObject);
begin
  inherited;
  dlbDirectory.ItemIndex:=0;
  Edit1.text:=dlbDirectory.GetItemPath(dlbDirectory.ItemIndex);
end;

end.

⌨️ 快捷键说明

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