PDA

View Full Version : Progress کردن CopyFile



loo30fer
شنبه 04 دی 1389, 16:48 عصر
با سلام
من میخواستم هنگام کپی کردن فایل تو Progress درصد عملیات رو نشون بده و تو انجمنم هم هرچی گشتم چیزی پیدا نکردم و اگه امکان داره کدش رو به این کد Thread من اضافه کنید ممنون میشم
ببخشید یک سوال دیگه هم داشتم که آیا میشه برای عملیات کپی Pause و Stop هم تعریف کرد


unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Buttons, Gauges;


type
Thread1 = class(TThread)
private
i: integer;
protected
procedure mostra;
procedure Execute; override;
end;

type
TForm1 = class(TForm)
SpeedButton1: TSpeedButton;
Gauge1: TGauge;
procedure SpeedButton1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}


procedure Thread1.mostra;
begin
end;
procedure Thread1.Execute;
begin
Synchronize(mostra);
CopyFile(PChar('C:\File.exe'),PChar('D:\File.exe') ,True);
end;
procedure TForm1.SpeedButton1Click(Sender: TObject);
Var
t1: Thread1;
begin
t1 := Thread1.Create(True);
t1.Priority := tpNormal;
t1.Resume;
end;

end.

Felony
شنبه 04 دی 1389, 17:27 عصر
با تابع CopyFile نمیشه ، یا باید از تابع CopyFileEX که یک CallBack Function هست استفاده کنید یا خودتون عملیات کپی رو پیاده سازی کنید ( به وسیله TFileStream یا ... ) .

loo30fer
شنبه 04 دی 1389, 17:47 عصر
شرمنده من زیاد با کد نویسی و این دستورات دلفی آشنا نیستم امکانش هست نمونه قرار بدین , کدوم راه حل بهتره ؟
اگه اشتباه نکنم TFileStream برای گرفتن هگز فایل است یعنی هگز فایل به ترتیب گرفته بشه و تو یک فایل ساخته شده اعمال بشه؟

Felony
شنبه 04 دی 1389, 21:03 عصر
اگه اشتباه نکنم TFileStream برای گرفتن هگز فایل است یعنی هگز فایل به ترتیب گرفته بشه و تو یک فایل ساخته شده اعمال بشه؟
خیر ، TFileStream برای کار با داده های فایل به صورت Stream هست که از کلاس پایه TStream مشتق شده .

یه کتابخانه با نام PBCopy نوشتم که کار کپی یک فایل رو همراه با روند پیشرفت تو یک ProgressBar نمایش میده که میتونید از پست شماره 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&p=1179989#post1179989) دریافتش کنید .