PDA

View Full Version : حرفه ای: زمان گذاري براي شئ هاي برنامه



MohammadGh2011
سه شنبه 14 تیر 1390, 20:46 عصر
با سلام خدمت تمامي برنامه نويسان موفق
نميدونم از عنوان خوبي استفاده كردم يا نه! به حر حال سوالم رو مطرح ميكنم.
مثلا رو فورمم يك تكست باكس دارم و يك ليبل و يك كاممند
ميخوام هر موقع رو تكست باكسم عدد 20 وارد شد 20ثانيه ديگه رو ليبلم بنويس MOHAMMAD
بر حسب ثانيه ميخوام حساب كنه كه هر ثانيه اي (عددي) رو تكست باكسم نوشته ميشه ليبلم اون چيزي رو كه ميخوام نمايش بده.
اينو ميدونم كه بايد از تايمر استفاده كنم و خيلي تلاش كردم نشـــــــــــــــــــــــ ــــد
شايد اساتيد بتونن راهنمايي كنن يا مثالي ضميمه كنند
Thank You

محسن واژدی
سه شنبه 14 تیر 1390, 22:38 عصر
سلام علیکم
از انجایی که زمان تایمر برحسب میلی ثانیه است میتوانید زمان وارد شده در TextBox را در 1000ms ضرب کنید سپس آنرا جایگزین Interval تایمر کنید

موفق باشید

MohammadGh2011
شنبه 01 مرداد 1390, 16:15 عصر
سلام عليكم خدمت دوستان و جناب آقاي MohsenVj
من امروز اومدم كه پروژم رو كاملش كنم به يك مشكل برخورد كردم
با راهنمايي بزرگ آقاي واژدي تونستم اين برنامه رو كه ميخوام كاملش كنم بنويسم و لي وقتي تو تكس عدد پايين تر ميدي مثلا 50
بعد از 50 ثانيه توي ليبل مينويسه 50 ولي بالاي 100 تو تكست باكس مينويسي خطا ميده و از يه جاي كدهام بيخود اشكال ميگيره.
من براتون فايلم رو آپلود كردم اگه ميشه يه نگاهي بهش بندازيد و ببينيد اين خطاي كوچيك باسه چيه؟ممنونم
http://s1.picofile.com/file/7100968709/New_Folder.rar.html باحجم2kb

محسن واژدی
شنبه 01 مرداد 1390, 17:14 عصر
سلام علیکم این خطا بدلیل محدودیت Interval تایمر است در واقع Interval مقداری از 0 تا 65535 را میپذیرد و مقداری خارج از این محدوده موجب خطای زمان اجرا میشود موفق باشید

M.T.P
شنبه 01 مرداد 1390, 17:35 عصر
کار با تایم های بالای چند دقیقه (http://barnamenevis.org/showthread.php?294416-%D8%B2%D9%85%D8%A7%D9%86-%DA%AF%D8%B0%D8%A7%D8%B1%D9%8A-%D8%A8%D8%B1%D8%A7%D9%8A-%D8%B4%D8%A6-%D9%87%D8%A7%D9%8A-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87&p=1302500#post1302500)

MohammadGh2011
شنبه 01 مرداد 1390, 21:26 عصر
سلام عليكم خدمت آقاي MohsenVj و آقاي M.T.P

[/URL]

<A href="http://barnamenevis.org/showthread.php?294416-%D8%B2%D9%85%D8%A7%D9%86-%DA%AF%D8%B0%D8%A7%D8%B1%D9%8A-%D8%A8%D8%B1%D8%A7%D9%8A-%D8%B4%D8%A6-%D9%87%D8%A7%D9%8A-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87&p=1302500#post1302500" target=_blank>[URL="http://barnamenevis.org/showthread.php?296382-%DA%A9%D8%A7%D8%B1-%D8%A8%D8%A7-%D8%AA%D8%A7%DB%8C%D9%85-%D9%87%D8%A7%DB%8C-%D8%A8%D8%A7%D9%84%D8%A7%DB%8C-%DA%86%D9%86%D8%AF-%D8%AF%D9%82%DB%8C%D9%82%D9%87"]کار با تایم های بالای چند دقیقه (http://barnamenevis.org/showthread.php?294416-%D8%B2%D9%85%D8%A7%D9%86-%DA%AF%D8%B0%D8%A7%D8%B1%D9%8A-%D8%A8%D8%B1%D8%A7%D9%8A-%D8%B4%D8%A6-%D9%87%D8%A7%D9%8A-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87&p=1302500#post1302500)

من از اين لينك جناب M.T.P چيزي دستگيرم نشد
عزيزان بايد از كامپوننت استفاده كنم يا...؟! اگه بايد از كامپوننت استفاده كنم لطفا يه كامپوننت بگذاريد
و چگونه ميشه بدون كامپوننت با تايمرهاي بالاي چند دقيقه كار كرد؟!
ممنونم



در واقع Interval مقداری از 0 تا 65535 را میپذیرد و مقداری خارج از این محدوده موجب خطای زمان اجرا میشود
اي كاش اين رو زودتر ميدونستم از صبح دارم روي اين كار ميكنم كه چرا بيخود اين ارور ميگيره:متفکر:.ممنونم محسن جان

محسن واژدی
شنبه 01 مرداد 1390, 22:34 عصر
من از اين لينك جناب M.T.P چيزي دستگيرم نشد
عزيزان بايد از كامپوننت استفاده كنم يا...؟! اگه بايد از كامپوننت استفاده كنم لطفا يه كامپوننت بگذاريد
و چگونه ميشه بدون كامپوننت با تايمرهاي بالاي چند دقيقه كار كرد؟!

سلام علیکم
نه، نیازی به استفاده از کامپوننت نیست، کافیست مقدار مورد نظر که در این جا ثانیه است را در یک متغیر ذخیره و در عوض تایمر را بر روی 1000ms تنظیم کنید، و وقتی که متغیر موجود در تایمر مطابق با ثانیه مورد نظر شد دستور مورد نظر اجرا شود، دستوری مشابه نمونه زیر:

Private Sub Timer1_Timer()
Dim tmr%
Timer1.Interval = 1000
tmr% = tmr% + 1
If tmr% >= 100 Then
tmr% = 0
'commands
End If
End Sub

در نمونه بالا زمانی که tmr برابر 100 (100ثانیه) شد دستورات بلوک If اجرا خواهد شد.

موفق باشید

MohammadGh2011
شنبه 01 مرداد 1390, 23:45 عصر
سلام
محسن جان ببخشيد من نفهميدم چي شد
ميشه هميني كه گفتيد تو سورسي كه بالا قرار دادم (دانلود (http://s1.picofile.com/file/7100968709/New_Folder.rar.html)2كيلوبايت)اعمال كنيد تا از روي اون متوجه شم و برنامم رو تكميل كنم؟!
ممنونم

محسن واژدی
سه شنبه 04 مرداد 1390, 10:09 صبح
سلام علیکم
کدهای زیر را جایگزین کدهای فرم برنامه تون کنین:

Dim a As Integer

Dim tmr%

Private Sub Command1_Click()

Timer1.Interval = 1
Timer1.Enabled = True
End Sub

Private Sub Form_Load()
Timer1.Enabled = False
Text1 = 10
End Sub

Private Sub Timer1_Timer()

If Text1 > "" Then
Timer1.Interval = 1000

tmr% = tmr% + 1

Command1.Caption = tmr & "/" & Text1

If tmr% >= Text1 Then
tmr% = 0
Beep
Label1.Caption = Text1
Timer1.Enabled = True
Timer1.Enabled = False
Else
Text1.Enabled = False
End If
Else
Timer1.Enabled = False: Beep
End If
End Sub

Private Sub Timer2_Timer()
Form1.Caption = Time
End Sub



موفق باشید