PDA

View Full Version : فعال کردن پروسیجر بار و کپی پوشه



mahdy.asia
جمعه 25 فروردین 1391, 19:18 عصر
من می خواهم هنگام کپی پوشه procegerbar که روی فرم گذاشتم فعال باشد اما پنجره عملیات کپی ویندوز ظاهر نشود. اما هر تنظیماتی را برای کپی انتخاب می کنم هر دو با هم فعال یا غیر فعال می شوند.
کد استفاده شده

function CopyDir(const fromDir, toDir: string): Boolean;
var
fos: TSHFileOpStruct;
begin
ZeroMemory(@fos, SizeOf(fos));
with fos do
begin
wFunc := FO_COPY;
fFlags := FOF_SIMPLEPROGRESS;
pFrom := PChar(fromDir + #0);
pTo := PChar(toDir)
end;
Result := (0 = ShFileOperation(fos));
end;

Felony
جمعه 25 فروردین 1391, 19:38 عصر
قبلا تو پست شماره 47 این تاپیک یه نمونه قرار داده بودم : http://barnamenevis.org/showthread.php?209792-%D8%B3%D9%88%D8%B1%D8%B3%D9%87%D8%A7%D9%8A-%D9%86%D9%85%D9%88%D9%86%D9%87-%D8%A2%D9%85%D9%88%D8%B2%D8%B4%D9%8A/page5

mahdy.asia
دوشنبه 28 فروردین 1391, 11:12 صبح
برای کپی من با خطای Can not open file در کد های زیر در یونیت PBCopy مواجه شدم



procedure TCopyThread.CopyFile;
var
S_FileStream, D_FileStream: TFileStream;
Pos, Buff: Cardinal;
begin
S_FileStream:= TFileStream.Create(SFile, fmOpenRead);
D_FileStream:= TFileStream.Create(DFile, fmCreate + fmOpenWrite);
Buff:= (S_FileStream.Size div 100);
Pos:= 0;
// Send max size of progress bar
PostMessage(HWND, WM_UpdatePB, 0, (S_FileStream.Size div 100));
try
S_FileStream.Seek(0, soFromBeginning);
D_FileStream.Seek(0, soFromBeginning);
while Pos < S_FileStream.Size do
begin
if Pos+ Buff > S_FileStream.Size then
Buff:= (S_FileStream.Size - Pos);
D_FileStream.CopyFrom(S_FileStream, Buff);
Inc(Pos, Buff);
// Send current position of progress bar
PostMessage(HWND, WM_UpdatePB, (Pos div 100), 0);
S_FileStream.Position:= Pos;
D_FileStream.Position:= Pos;
Application.ProcessMessages;
end;
finally
S_FileStream.Free;
D_FileStream.Free;
end;
end;

Felony
دوشنبه 28 فروردین 1391, 16:38 عصر
متن پیغام خطا که واضحه ؛ شما حق کپی اون فایل رو ندارید ، بهتره توی اون کد قسمتی رو اضافه کنید تا در صورت گرفتن خطا برای کپی یک فایل پیغام مناسب صادر کنه یا سراغ کپی فایل بعدی برید یا ...

mahdy.asia
یک شنبه 03 اردیبهشت 1391, 23:21 عصر
من معنی این پیام رو متوجه می شوم(این خطا هنگامی رخ می دهد که فایل می خواهد خوانده شود S_FileStream:= TFileStream.Create(SFile, fmOpenRead);) این فایل قابل کپی است(با کد کپی فایل) اما برای کد مذکور این خطا بوجود می آید آیا کدی هست که بتونه این فایل رو کپی کنه و پروسیجر بار رو هم پر کنه