مشاهده دست آورد نظرسنجی: چه طور بود ؟

رای دهنده
3. شما نمی توانید در این رای گیری رای بدهید
  • خوب

    3 100.00%
  • بد

    0 0%
نمایش نتایج 1 تا 2 از 2

نام تاپیک: آموزش نمایش میزان کپی شدن فایل با ProgressBar در دلفی

  1. #1

    آموزش نمایش میزان کپی شدن فایل با 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

  2. #2

    نقل قول: آموزش نمایش میزان کپی شدن فایل با ProgressBar در دلفی

    AssignFile(FromF, Source);
    reset(FromF);
    AssignFile(ToF, Destination);
    سلام
    در اینجا
    Source
    Destination
    چیه و چطور باید تعریف کرد دلفی خطا می گیره
    ممنون

تاپیک های مشابه

  1. لیبل برای ProgressBar ...
    نوشته شده توسط Arash-For-Life در بخش کامپوننت های سایر شرکت ها، و توسعه کامپوننت
    پاسخ: 2
    آخرین پست: چهارشنبه 05 دی 1386, 08:08 صبح
  2. یه تو ضیح کامل ترجیحا با مثال در مورد ProgressBar
    نوشته شده توسط Arash_VBScripts در بخش برنامه نویسی در 6 VB
    پاسخ: 4
    آخرین پست: چهارشنبه 08 شهریور 1385, 15:28 عصر
  3. درخواست ProgressBar بصورت عمودی
    نوشته شده توسط Sabeghi در بخش برنامه نویسی در 6 VB
    پاسخ: 3
    آخرین پست: جمعه 12 خرداد 1385, 11:01 صبح
  4. کار با progressbar
    نوشته شده توسط nazaninam در بخش VB.NET
    پاسخ: 2
    آخرین پست: جمعه 15 اردیبهشت 1385, 18:03 عصر
  5. ProgressBar
    نوشته شده توسط (امید) در بخش مباحث عمومی دلفی و پاسکال
    پاسخ: 2
    آخرین پست: پنج شنبه 11 اردیبهشت 1382, 07:32 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •