PDA

View Full Version : progress bar



morika
یک شنبه 10 شهریور 1387, 19:16 عصر
سلام
چه طوری می تونم کاری کنم که پر شدن progress متناسب با انجام شدن کار باشه نه با یه timer زمان داده شده
یعنی اگه قراره کار 5 دقیقه طول بکشه progress هم در 5 دقیقه تموم بشه
ممنون.

mpmsoft
یک شنبه 10 شهریور 1387, 20:10 عصر
Prg.Max = Rs.RecordCount

Do While Not Rs.Eof

Prg.Value = Prg.Value + 1
Doevents
Rs.MoveNext
Loop


دقیق نگفتی منظورت چیه و چی می خوای

morika
یک شنبه 10 شهریور 1387, 20:38 عصر
Prg.Max = Rs.RecordCount

Do While Not Rs.Eof

Prg.Value = Prg.Value + 1
Doevents
Rs.MoveNext
Loop


دقیق نگفتی منظورت چیه و چی می خوای
میشه بگید منظور از RS چیه؟
منظور من اینه که وقتی چیزی رو می خوایم چیزی رو کپی کنیم و این کپی 10 دقیقه طول می کشه prigrees به تناسب میزان فایل کپی شده پر بشه نه اینکه یه timer بزاریم و به اون زمان بدیم که progress رو پر کنه

اوبالیت به بو
یک شنبه 10 شهریور 1387, 22:28 عصر
Dim FilePath As String
Dim Counter As Integer
Dim i As Integer





On Error Resume Next
Open FilePath For Binary Access Read As #1
MousePointer = vbHourglass
ProgressBar1.Max = FileLen(FilePath)
Line Input #1, i
Counter = Counter + 1
Do While Not EOF(1)
ProgressBar1.Value = ProgressBar1.Value + Len(Counter)
If ProgressBar1.Value = ProgressBar1.Max Then MsgBox "Finish!": End
Loop
Close #1

rezankh
یک شنبه 13 بهمن 1387, 23:01 عصر
با سلام
من مي خوام با شروع اين كد پروگرس بار شروع بشه و با پايان دستور 100 درصد بشه. كد اينه


Dim f As New ADODB.Command

With f
.ActiveConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\Information.mdb;"
.CommandText = "UPDATE Table1 SET Table1.fn = " & Form3.Combo87.Text & " WHERE ((([Table1]![MahVije])=1));"
.Execute
.CommandText = "UPDATE Table1 SET Table1.fn = " & Form3.Combo95.Text & " WHERE ((([Table1]![MahVije])=2));"
.Execute

در ضمن من از SonicProgressBar-Demo.ocx استفاده كردم.

rezankh
پنج شنبه 17 بهمن 1387, 00:41 صبح
با سلام
مي خوام با زدن دكمه اي هزاران ركورد بعد از طي محاسبات فراوان توسط دستورات SQL در نهايت آپديت شوند و سپس به جدول ديگه‌اي كپي و بعدش در اون جدول محاسبه شوند
حالا مي‌خوام با شروع اين عمليات كه حدود 20 ثانيه ميشه يك progress bar نمايش داده بشه كه كل عمليات رو به درصد نشون بده
هر چي گشتم چيزي بدين شكل پيدا نكردم
لطفا راهنمايي كنيد با تشكر

e601
پنج شنبه 17 بهمن 1387, 19:25 عصر
با سلاممي خوام با زدن دكمه اي هزاران ركورد بعد از طي محاسبات فراوان توسط دستورات SQL در نهايت آپديت شوند و سپس به جدول ديگه‌اي كپي و بعدش در اون جدول محاسبه شوندحالا مي‌خوام با شروع اين عمليات كه حدود 20 ثانيه ميشه يك progress bar نمايش داده بشه كه كل عمليات رو به درصد نشون بدههر چي گشتم چيزي بدين شكل پيدا نكردملطفا راهنمايي كنيد با تشكر

با سلام

فقط کافیه عملیات مورد نظرتون رو به چند بخش تقسیم کنید (البته این بخشها باید تحت کنترل شما هم باشن). بعدش خاصیت Max نوار پیشرفت خود را برابر تعداد این بخشها قرار بدین و با اتمام کار هر بخش نوار پیشرفت رو آپدیت کنید. به همین راحتی !!!

حالا اینکه این بخشها چطوری تعیین بشن بستگی به هنر شما و احاطه دقیقی که روی کدهای نوشته شده خودتون دارید بر میگرده
من شخصا نمیتونم بدون اینکه بدونم نحوه محاسبات شما و عملیاتی که انجام میدین به چه صورته راهنمایی بیشتری بکنم...

توضیح: منظورم از اینکه گفتم باید بخشهای مورد نظر تحت کنترل شما باشن اینکه به عنوان مثال شما وقتی با SQL و یک دستور Update میخواهید تعدادی رکورد رو تغییر بدید مسلما کنترلی بر پیشرفت عملیات توسط SQL ندارید و نمیشه فهمید مثلا در ثانیه پنجم SQL داره کدوم رکورد رو پردازش میکنه

با توجه به توضیح اندکی که دادید فکر میکنم نهایتن یک بخش رو به Update رکوردها ، یک بخش رو به کپی اونها به جدول جدید و آخرین بخش رو به محاسبه هاتون اختصاص بدین
یعنی خاصیت Max نوار پیشرفت رو برابر 3 قرار بدین و با پایان یافتن هر بخش نوار پیشرفت رو جلو ببرین

موفق باشید...