PDA

View Full Version : استفاده از Progress Bar



موسوی
سه شنبه 04 آذر 1382, 21:50 عصر
سلام من یک برنامه دیتابیسی روی شبکه با دلفی واس کیو ال سرور نوشتم که موقع اجرای اولیه وارتباط با سرور 3-4 ثانیه طول میکشه که بستگی به ترافیک شبکه و... داره
با توجه به اینکه من دقیقا تمیدونم چقدر تا اجرای برنامه زمان دارو چطور میطونم از Progress Bar استفاده کنم؟

SyntaxCheck
چهارشنبه 05 آذر 1382, 00:50 صبح
یقینا برای محاسبه ابتدا و انتهای ProgressBar باید حد نهایی زمان معلوم باشه. اما اگه مطمعن هستید که دیگه این زمان از مثلا 4 ثانیه بیشتر نمیشه خوب انتهای عملکرد رو رو 4 ثانیه بگیرید.اگر هم در زمان کمتری تموم بشه Progressbar رو در همون لحظه پر کنید.کلک رشتیه بعضی وقتها هم بد نیست :wink:

موسوی
چهارشنبه 05 آذر 1382, 10:14 صبح
با سلام
آقای Syntax Check منظورتو از اینکه اگر در زمان کمتری هم تموم بشه progrss bar رو در همون لحظه پر کنید چیه میشه بیشتر توضیح بدید؟

SyntaxCheck
چهارشنبه 05 آذر 1382, 10:57 صبح
یعنی مقدار خاصیت Position رو برابر مقدار خاصیت Max بکنید.

Gladiator
چهارشنبه 05 آذر 1382, 13:26 عصر
دوست عزیز

اگر مدت زمان متفاوت باشه چی ؟

مهم اینه که زمان رو بدست بیاری . چطوری میشه این زمان رو بدست آورد ؟ کار با خود Progress Bar کار مشکلی نیست بدست آوردن این زمان یکم مبهمه .

موفق باشید .

موسوی
چهارشنبه 05 آذر 1382, 21:51 عصر
در اصل سوال من هم همینه :متغیر بودنه زمان

لطفا در این مورد من رو راهنمائی کنید

JavanSoft
چهارشنبه 05 آذر 1382, 22:15 عصر
می توانید خیلی ساده اینطوری استفاده کنید


ProgressBar.Max:=Max;
ProgressBar.Position:=0;
Command1;
ProgressBar.StepBy(1)
Application.ProcessMessage;
Command2
ProgressBar.StepBy(1)
Application.ProcessMessage;
CommandN
ProgressBar.StepBy(1)
Application.ProcessMessage;




در این حالت هر دستوری که انجام شود برنامه خود ProccessBarرا تغییر می دهد

Gladiator
چهارشنبه 05 آذر 1382, 22:20 عصر
آقای وکیلی با سلام

ایشون منظورش این بود که مشخص کنه که کی به سرور متصل میشه . یعنی زمان اتصال رو مشخص کنه .

با فرمایش جنابعالی هر مرحله از کار که پیش میره Progress Bar تغییر میکنه و اون نتیجه نهایی چیزی متفاوت با درخواست ایشون میشه .

موفق باشی .

SyntaxCheck
جمعه 07 آذر 1382, 16:27 عصر
سلام
مشخصه که یک پروسه تا تموم نشه شما زمان انجام اون رو نمیتونید بدونید. نشون دادن روند انجام پروسه ای که دوست عزیزمون قصد انجامش رو دارند بر مبنای زمان انجام کاری که هنوز انجام نشده طبیعتا امکان نداره. فرض کنید که در بین بلاکی که یک پروسه رو انجام میده چهار عمل متفاوت رو انجام میدیم. بعد از هر عمل میشه یک چهارم ظرفیت پروگرسبار رو تکمیل کرد. اما جایی که فقط یک کار برای انجام شدن داریم مثل سوال رفیقمون عملا نمیشه روند افزایشی منظم پروگرسبار رو نشون داد چون نمیشه زمان دقیق کانکت شدن به سرور رو بدست آورد و این زمان متغیره. و اما یک راه همون هست که گفتم بالاخره میشه یک ماکزیمم زمان برای کانکت شدن پیدا کرد و اون رو مبنای کار قرار داد. گرچه این کار پشتوانه منطقی نداره اما کار رو راه میندازه.

said ali
یک شنبه 09 آذر 1382, 14:42 عصر
با سلام
چرا از زمان استفاده میکنی .
ببین چند تا Table داری 100 رو تقسیم بر اون کن بعد از وصل شدن به هر Table مقدار فوق رو به اون اضافه کن.برای قطع شدن هم همینطور.
حتی میتونی اگه میدونی مثلا یه Table زمان بیشتری به خود اختصاص میده مقدار بیشتری به اون اختصاص بدی. من خودم این کار رو کردم خیلی تمیزه ولی حرکت ProgressBar یه حرکت ممتد نداره البته اگه تعداد Table ها بیشتر بشه این مشکل هم حل میشه.
قربانت.

موسوی
یک شنبه 09 آذر 1382, 20:26 عصر
آقا سید(پسر عموی عزیز) ایده خوبیه متشکرم حتما امتحان میکنم
اما اگه بقیه دوستان هم چیزی به ذهنشون رسید دریغ نکنند

said ali
دوشنبه 10 آذر 1382, 18:06 عصر
با سلام
قربانت.

alfa2000
دوشنبه 10 آذر 1382, 18:40 عصر
سلام
فکر کنم شما می تونی یه تایمر بذاری - این تایمر هر نیم ثانیه چک کنه که آیا ارتباط برقرار شده یا خیر.
شما توی این پروسه یه متغییر عددی را افزایش بده - این عدد در حقیقت همون پوزیشن شما هست. بعد همیشه عدد فعلی پوزیشن را در 4 ضرب کن و برابر با مقدار ماکسیمم پروگرس بذار.
هر وقت کانکت شد دیگه شما مقدار ماکس را زیاد نکن.
این طوری قیافه پروگرس به هم نمی خوره و خیلی زیبا پر میشه

بالاخره اینم یه روش دیگه - روش گوشکوبی :lol:

said ali
چهارشنبه 12 آذر 1382, 12:35 عصر
با سلام
جناب الفا 2000 عزیز روش قشنگیه اما تو این حالت اگه در ارتباط برقرار کردن با یه تیبل کانکت مشکل پیدا کنه هیچ کس نمیفهمه و فقط کاربر میبینه هی پروگرس بار پرمیشه و اخر میزنه تو سر خودش یا کامپیوتر :lol: :lol: :lol: :lol: :lol: :lol: :lol: البته با روش خودم هم این مشکل ایجاد میشه و لی در هر دو صورت یه مشکلی هست اینم اینکه چطوری بفهمیم یه تیبل مشکل پیدا کرده که این هم یه سواله؟؟ :?: :?: با تشکر لطفا جواب بدین.

موسوی
جمعه 14 آذر 1382, 11:03 صبح
با تشکر از همه دوستان من در آخر به ایتن نتیجه رسیدم که از Splash Form استفاده کنم واتفاقا استفاده هم کردم وخیلی جالب شد

JavanSoft
جمعه 14 آذر 1382, 22:36 عصر
میشه بفرمایید چه کاری انجام دادید

said ali
شنبه 15 آذر 1382, 16:07 عصر
با سلام
اقا یکی به سوال بنده هم جواب بده ثواب میبره ها!!!!!! :wink: :wink: :wink: .
چطوری میشه فهمید یه تیبل براش مشکل ایجاد شده؟؟؟؟؟؟ :?: :?: :?:

موسوی
شنبه 15 آذر 1382, 23:07 عصر
من صفحات سوال وجواب رو میخوام به فرمت htmیا mht ذخیره کنم اما پیغامی که می دهد این است:
can't save web page

موسوی
شنبه 15 آذر 1382, 23:11 عصر
من صفحات سوال وجواب رو میخوام به فرمت htmیا mht ذخیره کنم اما پیغامی که می دهد این است:
can't save web page