تایمر معکوس

EHSAN7417

New Member
سلام
کسی هست بهم بگه چه شکلی میشه یک تایم رو برعکس نوشت؟ یعنی به جای اینکه از 1 شروع کنه از 10 به 0 برگرده
 

the_king

مدیرکل انجمن
سلام
کسی هست بهم بگه چه شکلی میشه یک تایم رو برعکس نوشت؟ یعنی به جای اینکه از 1 شروع کنه از 10 به 0 برگرده

می توانید قبل از اینکه نمایش زمان رو آغاز کنید، زمان اون لحظه رو در یک متغیر ذخیره کنید، مثلا متغیر t
هر چه که زمان می گذره، از مقدار t فاصله می گیره یعنی بزرگتر از t میشه. اگر زمان فعلی رو Time در نظر بگیریم
فرمول زیر زمانی رو نشون میده که از 10 به مرور به سمت 0 کم میشه :

کد:
10 - Time + t

در این انجمن زبان های برنامه نویسی متفاوتی مطرح میشه، شما منظورتون کدام زبان برنامه نویسی است؟
 

the_king

مدیرکل انجمن
ممنون
منظور من vb6 هست
امتنحان نکردم
اگه شد خبرشو میدم

یک تایمر به اسم Timer1 رو فرم قرار دهید، یک Label دراز هم به اسم Label1 هم همینطور.
حالا کد زیر رو در کد های فرم قرار داده و اجرا کنید :
کد:
Private t As Single

Private Sub Form_Load()
    t = Timer
    Timer1.Interval = 100
End Sub

Private Sub Timer1_Timer()
    Label1.Caption = Format(DateTime.TimeSerial(0, 0, 10 - Timer + t), "Hh:Nn:Ss")
End Sub

اگر می خواهید مثلا بجای 10 ثانیه، 1 ساعت و 30 دقیقه و 15 ثانیه باشد، کد رخداد Timer1_Timer رو اینگونه
تغییر دهید :
کد:
Private Sub Timer1_Timer()
    Label1.Caption = Format(DateTime.TimeSerial(1, 30, 15 - Timer + t), "Hh:Nn:Ss")
End Sub
 

EHSAN7417

New Member
سلام
ممنون
هنوز امتحان نکردم
اما من نمیدونم شما دقیقا متوجه شدید من چی میخوام یا نه
فرض کنیم من یه فرم ساختم و توش یه تایمر فعال کردم که هر ثانیه به ترتیب از 1 شروع میکنه تا بینهایت
1 - 2 - 3 - 4 - 5 - 6 - 7 - ...
حالا میخوام همین شمارش برعکس بشه از 10 تا 0
یعنی : 10 - 9 - 8 - 7 - ...
 

the_king

مدیرکل انجمن
سلام
ممنون
هنوز امتحان نکردم
اما من نمیدونم شما دقیقا متوجه شدید من چی میخوام یا نه
فرض کنیم من یه فرم ساختم و توش یه تایمر فعال کردم که هر ثانیه به ترتیب از 1 شروع میکنه تا بینهایت
1 - 2 - 3 - 4 - 5 - 6 - 7 - ...
حالا میخوام همین شمارش برعکس بشه از 10 تا 0
یعنی : 10 - 9 - 8 - 7 - ...

خود تایمر به تنهایی که چیزی رو نمی شماره، یعنی صرفا در فاصله زمانی مورد نظر (مثلا هر ثانیه یکبار) یک کدی رو
اجرا می کنه. از نظر تایمر بین دفعه اول و دوم و دهم فرقی نیست.
حالا اگه شما در کد اون رخداد که هر ثانیه یکبار اتفاق می افته کد i = i + 1 رو بنویسید هر ثانیه یکبار مقدار i افزایش
پیدا می کنه و اگه کد i = i - 1 رو بنویسید برعکس مقدار i کم میشه.

مثال هایی که من براتون نوشتم بصورت نمایشی این مورد رو نشون می دهند.
 

sicret

Member
اگه مظورت VB.net هست پاسخت کد زیره
Public
Class Form2
' یه متغیر ایجاد می کنیم و مقدار شو 10 قرار می دیم
Dim a AsInteger = 10
PrivateSub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
'چک میکنیم که به صفر رسیده یا نه
If a = 0 Then
'اگر به صفر رسیده باشه تایمر رو غیر فعال می کنیم
Timer1.Enabled =


False
Else
'در غیر اینصورت ازمتغیر یک واحد کم می کنیم
a -= 1
EndIf
'تکست لیبل رو مقدار متغیر قرار می دیم
Label1.text = a
EndSub
EndClass
اگر منظورتون VB 6 هست پاسختون کد زیر هست خیلی فرقی ندارن
Dim a As Integer
Private Sub Form_Load()
a = 10
End Sub

Private Sub Timer1_Timer()
If a = 0 Then
Timer1.Enabled = False
Else
a = a - 1
End If
label1.Text = a
End Sub


 
آخرین ویرایش:

جدیدترین ارسال ها

بالا