رفتن به مطلب
  • 0

10 بار در روز


alihack

سوال

سلام دوستان و اساتید

 

من یه دکمه دارم میخوام روزی فقط 10 بار بشه اونو زد بعد ده بار غیرفعال شه و روز بعد فعال شه و بازم ده بار

میدونم باید با سرویس و ساعت کار کنم ولی نمیدونم چطوری

لینک ارسال
به اشتراک گذاری در سایت های دیگر

3 پاسخ به این سوال تاکنون داده شده است

ارسال‌های توصیه شده

سلام دوستان و اساتید

 

من یه دکمه دارم میخوام روزی فقط 10 بار بشه اونو زد بعد ده بار غیرفعال شه و روز بعد فعال شه و بازم ده بار

میدونم باید با سرویس و ساعت کار کنم ولی نمیدونم چطوری

همین پاسخی که مدیر بخش گفتن رو بنده بیشتر توضیح می دم.

اول از همه یک دیتابیس می سازی که دو فیلد داشته باشه، یک فیلد برای خواندن و ثبت تعداد کلیک ها و دیگری برای خواندن و ثبت Day in Year ینی اینکه امروز چندمین روز ساله.

 

بعد داخل برنامه B4A تیک کتابخانه SQL رو می زنی.

 

بقیه ش فک کنم از کد نوشته شده مشخص باشه. با هر بار کلیک روی کلید مورد نظرت، داخل دیتابس میره و اگه توی همون روزی ک داخلش هستیم، تعداد کلیک ها به عدد مشخص مثلا 10 برسه، کلیک عمل نمیکنه. (دستور Return)

#Region  Project Attributes 
	#ApplicationLabel: B4A Example
	#VersionCode: 1
	#VersionName: 
	'SupportedOrientations possible values: unspecified, landscape or portrait.
	#SupportedOrientations: unspecified
	#CanInstallToExternalStorage: False
#End Region

#Region  Activity Attributes 
	#FullScreen: False
	#IncludeTitle: True
#End Region

Sub Process_Globals
	Dim sql1 As SQL
End Sub

Sub Globals
	Dim date, clicked As Int
	Dim cursor1 As Cursor
	Dim button1 As Button
End Sub

Sub Activity_Create(FirstTime As Boolean)
	If File.Exists(File.DirInternal,"sample.db") = False Then
		File.Copy(File.DirAssets,"sample.db", File.DirInternal,"sample.db")
	End If
	sql1.Initialize(File.DirInternal,"sample.db",False)
	
	date = DateTime.GetDayOfYear(DateTime.Now)
	
	cursor1 = sql1.ExecQuery2("select * from sample where dayinyear = ?",Array As String(date))
	If cursor1.RowCount = 0 Then
		sql1.ExecNonQuery2("insert into sample values(?,?)",Array As String(0,date))
		clicked = 0
		cursor1=sql1.ExecQuery2("select * from sample where dayinyear = ?",Array As String(date))
		cursor1.Position = 0
		Log (cursor1.GetString("clicked"))
	Else
		cursor1.Position = 0
		clicked = cursor1.GetString("clicked")
	End If
	
	button1.Initialize("button1")
	Activity.AddView(button1,25%x,25%x,50%x,50%x)
	button1.Text = clicked
	button1.Color = Colors.yellow
	button1.TextColor = Colors.Black
	button1.TextSize = 30
End Sub

Sub button1_Click
	If clicked < 10 Then
		sql1.ExecNonQuery2("update sample set clicked = ? where dayinyear = ?",Array As String(clicked + 1, date))
		clicked = clicked + 1
		button1.Text = clicked
	Else
		Msgbox("You Reached Maximum Number of clicks","")
		Return
	End If
End Sub

Sub Activity_Resume
	
End Sub

Sub Activity_Pause (UserClosed As Boolean)
	
End Sub

اگه بازم سوالی داشتی درخدمتم.

Sample.zip

لینک ارسال
به اشتراک گذاری در سایت های دیگر

خوب درون دیتابیس یه مقدار بذار و هربار که کلیک شده بهش یدونه اضافه کن وقتی که 10 شد دکمه رو غیر فعال کن

تاریخ هم جلوش ثبت کن بعد در سرویس تاریخ رو بررسی کن و اگه تاریخ اضاف شده دوباره فعالش کن

لینک ارسال
به اشتراک گذاری در سایت های دیگر

خوب درون دیتابیس یه مقدار بذار و هربار که کلیک شده بهش یدونه اضافه کن وقتی که 10 شد دکمه رو غیر فعال کن

تاریخ هم جلوش ثبت کن بعد در سرویس تاریخ رو بررسی کن و اگه تاریخ اضاف شده دوباره فعالش کن

قسمت اول رو فهمیدم ولی میشه کد قسمت دوم رو بنویسید

مثلا چجوری بگم که اگه روز بعد دکمه رو فعال کن

لینک ارسال
به اشتراک گذاری در سایت های دیگر

بایگانی شده

این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.
×
×
  • اضافه کردن...