📄 databackupfrm.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 + -