📄 backup.pas
字号:
unit Backup;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls, ToolWin,ExtCtrls,buttons,IniFiles, ADODB, ImgList,myclass;
type
TBackUpForm = class(TForm)
SpeedButton1: TSpeedButton;
ProgressBar1: TProgressBar;
SaveDialog1: TSaveDialog;
SpeedButton2: TSpeedButton;
Panel1: TPanel;
Label1: TLabel;
Label2: TLabel;
Edit1: TEdit;
StaticText1: TStaticText;
Edit2: TEdit;
Image1: TImage;
procedure CreateParams(var Params: TCreateParams); override;
procedure FormCreate(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
procedure StaticText1Click(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure StaticText1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure StaticText1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure SpeedButton2Click(Sender: TObject);
private
procedure WMPAINT1(var msg:TMESSAGE);message WM_PAINT;
procedure WMNCPAINT1(var msg:TWMNCPAINT);message WM_NCPAINT;
procedure Active(var msg:Tmessage);message WM_ACTIVATE;
procedure WMNCLBUTTONDBLCLK1(var msg:Tmessage);message WM_NCLBUTTONDBLCLK;
{ Private declarations }
public
titleBmp:Tbitmap;
path:string;
setini:TINIFILe;
{ Public declarations }
end;
implementation
uses MainForm,DataModule;
{$R *.dfm}
procedure TBackUpForm.WMNCLBUTTONDBLCLK1(var msg:Tmessage);
begin
//
end;
procedure TBackUpForm.Active(var msg:Tmessage);
begin
self.WMPAINT1(msg);
end;
procedure TBackUpForm.CreateParams(var Params: TCreateParams);
begin
inherited;
params.Style:=params.Style-WS_SYSMENU;
end;
procedure TBackUpForm.WMPAINT1(var msg:TMESSAGE);
begin
sendmessage(self.Handle,WM_NCPAINT,0,0);
inherited;
end;
procedure TBackUpForm.WMNCPAINT1(var msg:TWMNCPAINT);
var
dc1:HDC;
y,frame:integer;
oldbrush:HBrush;
oldpen,pen:HPEN;
canvas:Tcanvas;
begin
canvas:=Tcanvas.Create;
dc1:=getwindowdc(Handle);
y:=GetSystemMetrics(SM_CYSIZE);
frame:=GetSystemMetrics(SM_CYSIZEFRAME);
oldbrush:=selectobject(dc1,getstockobject(null_brush));
pen:=createpen(PS_SOLID,1,rgb(155,155,155));
oldpen:=selectobject(dc1,pen);
RoundRect(dc1,0,0,Width,Height,12,12);
pen:=createpen(PS_SOLID,frame*2-5,rgb(255,255,255));
selectobject(dc1,pen);
RoundRect(dc1,2,2,Width-2,Height-2,8,10);
StretchBlt(dc1,frame,frame,Width-2*frame,y+frame div 2,titlebmp.Canvas.Handle,0,0,titlebmp.Width,titlebmp.Height,srccopy);
canvas.Handle:=dc1;
canvas.Brush.Style:=bsclear;
canvas.TextOut(frame*3,(y-frame)div 2,self.Caption);
selectobject(dc1,oldbrush);
selectobject(dc1,oldpen);
deleteObject(pen);
canvas.Handle:=0;
canvas.Free;
releasedc(Handle,dc1);
end;
procedure TBackUpForm.FormCreate(Sender: TObject);
begin
setini:=Tinifile.Create(main.dir+'\system.ini');
edit1.Text:=setini.ReadString('BackupPath','path',main.dir+'\backup.dat');
titlebmp:=Tbitmap.Create;
titlebmp.LoadFromResourceName(main.resource,'TItle');
progressbar1.Max:=progressbar1.Width;
end;
procedure TBackUpForm.SpeedButton1Click(Sender: TObject);
var
backup:TbackupThread;
begin
backup:=tbackupthread.Create(true);
backup.sender:=progressbar1;
backup.command:=data.ADOCommand1;
backup.folder:=edit1.Text;
backup.backname:=edit2.Text;
backup.parent:=self;
progressbar1.Visible:=true;
backup.Resume;
end;
procedure TBackUpForm.StaticText1Click(Sender: TObject);
begin
if savedialog1.Execute then
begin
path:=savedialog1.FileName;
setini.WriteString('BackupPath','path',path);
edit1.Text:=path;
end;
end;
procedure TBackUpForm.FormDestroy(Sender: TObject);
begin
setini.Free;
end;
procedure TBackUpForm.StaticText1MouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
statictext1.BevelKind:=BKsoft;
end;
procedure TBackUpForm.StaticText1MouseUp(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
statictext1.BevelKind:=bkflat;
end;
procedure TBackUpForm.SpeedButton2Click(Sender: TObject);
begin
close;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -