مشاهده نسخه کامل
: وقتی برنامه در حال پردازش است چگونه باید به کاربر فهماند؟
سلام
وقتی که کاربر روی دکمه ای کلیک می کند (مانند دکمه Login نرم افزار که باید اعتبار نام کاربری و رمز عبور را چک کند) و این دکمه یکسری عملیات طولانی باید انجام دهد چگونه می توان به کاربر پیغام داد (مثلا پیغام Please Wait...(چون وقتی که یک Label روی فرم قرار می دهم و در آن زمان Visible آن را True می کنم، این دستور انجام می شود اما آن را به دلیل سرعت پردازش بالا یا ... نمایش نمی دهد!)) و همزمان یک شی مانند progressBar در پایین فرم شروع به پر شدن کند؟
Haj_Amoo
14-02-2009, 19:16
دستور نشان دادن ليبل را قبل از دستور آغاز پردازش بنويس.
Label.visible=true
'آغاز پردازش
قبل از پردازش اطلاعات را می نویسم اما باز هم پاسخگو نیست!
بیشتر منظور من از طرح این سئوال قسمت دوم بود:
"چگونع همزمان با پردازش اطلاعات یک شی مانند progressBar در پایین فرم شروع به پر شدن کند؟ "
Haj_Amoo
15-02-2009, 13:47
اگر پردازش قسمتي است است مثلا قرار است از يك تا 100 بشمارد بعد از پردازش هر قسمت اين كار را ميتواني بكني:
For a = 1 To 100
ProgressBar1.Value = ProgressBar1.Value + 1
Next
اگر هم قرار بود تا 50 بشمرد با استفاده از خاصيت Maximum حداكثر مقدار Progress bar را عوض كني.
دوست عزیز مشکل من همینجاست که از کجا بفهمم که پردازش اطلاعات من چقدر طول خواهد کشید تا براساس آن زمانبندی را انجام دهم!
بستگی به کاری داره که میخوای انجام بدی باید خودت محاسبات رو انجام بدی
به عنوان مثال برای کپی کردن یک فایل سنگین میتونی از این روش استفاده کنی
1- حجم فایل مبدا رو بدست میاری
2-مقدار بدست آمده رو تقسیم بر تعداد Maximum پروسس بار می کنی تا معلوم بشه به ازای انتقال هر چند کیلو بایت باید پروسس بار چند تا حرکت بکنه
3-حجم فایل مقصد رو بدست میاری
4- هر وقت حجم فایل مقصد به اندازه ی ضریبی از حاصل تقسیم شد به همون تعداد پروسس بار رو حرکت ویدی
برای بانکهای اطلاعاتی هم می توانی به جای حجم فایل از تعداد رکوردهای انتقالی و یا خوانده شده استفاده کنی بطوری که به ازای خواندن چند رکورد فرضا یک پروسس بار حرکت کنه
در کل استفاده از پروسس بار بستگی به کاری داره که انجام میدی
در پردازشهای سنگین هم برای اینکه کنترلها رو خوب ببینی و ناپدید نشن قبل از پردازش از این دستور استفاده کن
Application.DoEvent
vBulletin , Copyright ©2000-2025, Jelsoft Enterprises Ltd.