ورود

View Full Version : تنظیم سرعت حرکت progessbar با حجم عملیات در حال اجراء



ali190
یک شنبه 22 فروردین 1389, 22:17 عصر
با سلام
چطور میشه سرعت حرکت پروسز بار رو نسبت میزان پردازش سیستم تعیین کرد.
بنده همیشه از طریق :

Private Sub Fill_PrgBar()
Me.ProgBar.Value = 0
Me.ProgBar.Max = 10000
For i = 0 To 10000
Me.ProgBar.Value = i
Next
End Sub
سرعت حرکت رو فقط بصورت خطی و یکنواخت در نظر میگرفتم.
فرض کنید کاربر قصد کپی کرفتن از یک فولدر را با دستور:

fso.CopyFolder "c:\a", "d:\newfolder2"
دارد.صد درصد میزان زمان کپی گرفتن یک پوشه 1مگابایتی با یک پوشه 1 گیگابایتی یکی نیست.حال اگر بعد از اجرای دستور بخواهیم پروسزبار رو فعال کنیم ، حرکت عنصر پروسزبار با توج به حجم متفاوت این دو عملیات چگونه است.یعنی چطور میشه پیشرفت حرکت عنصر پروسزبار رو با سرعت پردازش سیستم ویندوز منطبق نمود؟
ممنون

علیرضا حسن زاده
یک شنبه 22 فروردین 1389, 22:40 عصر
برای این کار می تونی از روش زیر استفاده کنی:
در صد مقدار پیشرفت= (بیشترین مقدار-مقدار فعلی)/100
مقدار اولیه که معمولا صفر هست
بیشترین مقدار رو هم می تونی با روش های مختلف به دست بیاری مثلا تعداد رکوردهایی که می خوای روش پردازش انجام بدی یا حجم کل فایل هایی که قراره کپی بشه (البته تو این مورد خاص بهترین روش استفاده از دیالوگ کپی خود ویندوزه)

ali190
دوشنبه 23 فروردین 1389, 18:24 عصر
باسلام وعرض خسته نباشید
ممنون از توضیحتون
این مثال شما درمورد تعداد رکئوردها بصورت خیلی ساده عملیه ولی در مورد حذف و کپی برداری فایلها برای بدست آوردن زمان پردازش میشه یک نمونه فایل را بعنوان مثال رو ارائه نمایید.

ali190
دوشنبه 23 فروردین 1389, 23:30 عصر
با سلام
دوستان آیا اینکار شدنیه؟

علیرضا حسن زاده
سه شنبه 24 فروردین 1389, 00:02 صبح
می تونی فایل های انتخابی رو تو برنامه بخونی و در مسیر مقصد بنویسی این طوری می تونی کل حجم رو بدست بیاری یعنی یه برنامه کپی فایل مستقل واسه خودت بنویسی البته این یه پیشنهاده و توصیه هم نمی کنم چون ارزشش رو شاید نداشته باشه (به نظر من)

ali190
سه شنبه 24 فروردین 1389, 17:27 عصر
باسلام
میشه در این مورد یک نمونه مثال قرار بدید.
ممنون

mazoolagh
چهارشنبه 25 فروردین 1389, 08:37 صبح
برای پروسس هایی که خارج از access انجام میشه نمیتونین از progress bar استاندارد خودش استفاده کنین.

یا باید بر اساس apiهای مناسب کد بنویسین و یا اینکه activex آماده پیدا کنین

ali190
چهارشنبه 25 فروردین 1389, 16:26 عصر
باسلام
از اساتید گرامی استدعا دارم توضیحشون رو در یک فایل نمونه ارائه کنند.
خیلی ممنون