انواع سی دی و نرم افزار های جدید

      لینک های داغ

 
   
  





تهران وب
اخبار روز :: دوستان :: تهران مانیا :: پزشکی :: بالاشهر :: ایران من
ایران 20 :: امواج :: هفت ستاره :: تهران وب :: پرشین تاپ :: طنز :: ایران شادی :: خنده :: لینک باکس :: دنیای خنده

آموزش کامپيوتر :: زبان هاي برنامه نويسي

موضوع: آموزش دلفی (بخش ششم)

نمایش میزان كپی شدن فایل با ProgressBar در دلفی
چطور میتوان زمان کپی شدن فایل را با استفاده از ProgressBar نمایش داد؟
برای انجام این کار ابتدا بر روی یک فرم یک ProgressBar اضافه کنید سپس تابع زیر را تایپ کنید:
procedure TForm1.CopyFileWithProgressBar1(Source, Destination: string);
var
FromF, ToF: file of byte;
Buffer: array[0..4096] of char;
NumRead: integer;
FileLength: longint;
begin
AssignFile(FromF, Source);
reset(FromF);
AssignFile(ToF, Destination);
rewrite(ToF);
FileLength := FileSize(FromF);
with Progressbar1 do
begin
Min := 0;
Max := FileLength;
while FileLength > 0 do
begin
BlockRead(FromF, Buffer[0], SizeOf(Buffer), NumRead);
FileLength := FileLength - NumRead;
BlockWrite(ToF, Buffer[0], NumRead);
Position := Position + NumRead;
end;
CloseFile(FromF);
CloseFile(ToF);
end;
end;



در این تابع شما در واقع فایل مبدا را خوانده و در مقصد مینویسید. حالا یک دکمه اضافه کرده کد زیر رو اضافه نمایید:


procedure TForm1.Button1Click(Sender: TObject);
begin
CopyFileWithProgressBar1('c:\Welcome.exe', 'c:\temp\Welcome.exe');
end;




چطور می توان زمان کپی شدن فایل را محاسبه و نمایش داد؟
برای این کار نیز میتوانید از تابع زیر استفاده کنید:


procedure TForm1.CopyFileWithProgressBar1(Source, Destination: string);
var
FromF, ToF: file of byte;
Buffer: array[0..4096] of char;
NumRead: integer;
FileLength: longint;
t1, t2: DWORD;
maxi: integer;
begin
AssignFile(FromF, Source);
reset(FromF);
AssignFile(ToF, Destination);
rewrite(ToF);
FileLength := FileSize(FromF);
with Progressbar1 do
begin
Min := 0;
Max := FileLength;
t1 := TimeGetTime;
maxi := Max div 4096;
while FileLength > 0 do
begin
BlockRead(FromF, Buffer[0], SizeOf(Buffer), NumRead);
FileLength := FileLength - NumRead;
BlockWrite(ToF, Buffer[0], NumRead);
t2 := TimeGetTime;
Min := Min + 1;
// Show the time in Label1
label1.Caption := FormatFloat('0.00', ((t2 - t1) / min * maxi - t2 + t1) / 100);
Application.ProcessMessages;
Position := Position + NumRead;
end;
CloseFile(FromF);
CloseFile(ToF);
end;
end;



در این تابغ ابتدا زمان اولیه در متغیر t1 ذخیره شده و سپس پس از کپی شدن هر قسمت از فایل، زمان در متغیر t2 ذخیره میشود و توسط فرمول زیر مقدار زمان باقی مانده تا کپی کامل فایل بدست می آید.


((t2 - t1) / min * maxi - t2 + t1) / 100



مطلب بعدی   ::  مطلب قبلی

   

  با يكي از عجيب ترين هتلهاي جهان آشنا شويد
  نحوه کار همکاری با خانمهای همکار
  آزاد كردن فضاي حافظه RAM
  eedUpMyPC 2.0 يه برنامه براي افزايش سرعت سيستم شما
  هفت روش حرفه اي براي ايجاد رمز عبور
  قابل توجه خانم هاي خانه دار
  دانشمندان به راز اختلاف قد انسان ها پي بردند
  سرگيجه
  نوروز، تخستين روز سال
  افرا 1و2 » گل سرخ
Traktor DJ Studio 2.6.2.110 افکت گذاري تغيير صدا
نیایش
مگه ميشه
وسواس چيست و چگونه آنرا درمان كنيم؟
گفت وگو با سعيد ثابت، نوازنده غربت سنتور
تاثير دود سيگار در ابتلا به پوکي استخوان
S BlackICE PC Protection 3.6 يک فايروال بسيار عالي
s ver. 5.96 برنامه اي براي بهتر كردن كاركرد ويندوز
پيريمتامين PYRIMETHAMINE
آموزش Asp.net ( قسمت پنجم )
 
صفحه اول  : تقشه سایت : لینک باکس