文件拷贝进度条问题
如下代码:
procedure Tt_databake.Button1Click(Sender: TObject);
var
mytime: TDateTime;
ErrorMessage: Pointer;
ErrorCode: DWORD;
ErrorMessageString:string;
path:LPCSTR;
hour,minite,second:string;
begin
mytime:=Now;
hour:=IntToStr(HourOf(Now));
minite:=IntToStr(minuteOf(Now));
second:=IntToStr(secondOf(Now));
path:=LPCSTR(Edit1.Text+ '/ '+DateToStr(mytime)+ '- '+hour+ '- '+minite+ '- '+second{+TimeToStr(mytime)}+ '.dat ');
if not CopyFile( 'aaa.mdb ',Pchar(path),False) then
begin
ErrorCode := GetLastError;
FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER or FORMAT_MESSAGE_FROM_SYSTEM,
nil, ErrorCode, 0, @ErrorMessage, 0, nil);
ErrorMessageString:= '文件备份错误: '+PChar(ErrorMessage);
MessageBox(handle,PChar(ErrorMessageString), '警告 ',MB_ok or MB_ICONERROR);
LocalFree(hlocal(ErrorMessage));
end
else MessageBox(handle, '文件备份成功 ', '信息 ',MB_ok or MB_ICONINFORMATION);
end;
这里是拷贝文件:CopyFile( 'aaa.mdb ',Pchar(path),False)
我怎么在这里使用进度条呢?
如果这样不可以,我该怎么做?
[解决办法]
不要求进度条精度的话,单独开一个线程最简单了。
[解决办法]
要求进度条精度的话,用流打开要复制的文件,再新建一个目标文件
一字节一字节的写进去,进度的max是文件大小,写一字节就step加1
够精确了吧!