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

برابر نشدن دکمه مورد نظر در هنگام لیمیت دادن


HS71

سوال

با ســلام ،

پس از جستجوها در مورد لیمیت داد به مولتی پنل

تاپیک بالا رو دیدم و برنامه رو مثله اون پیاده کردم ،

حالا هنگام اسکرول که درسته و 10 تا 10 تا لود میشه و دکمه پخش آهنگ هم همون آهنگ رو پخش میکنه،

اما دکمه ای که به عنوان تنظیم زنگ گذاشتم کنار دکمه پلی تا اسکرول نکنیم و 10 تا بعدی فعال نشه اگه کلیک بشه خطا میده و میاد بیرون واگه اسکرول هم کنم تا 10 تای دوم هم فعال بشه اونوقت اولین دکمه تنظیم زنگ از لیست رو کلیک کنیم اسمی که از دیتابیس میگیره یه اسم دیگست.......

کدهای اصلی:

Sub Globals	
	Dim tracks As Int
	Dim TenRecordPlus As String = "10"
End Sub

Sub Activity_Create(FirstTime As Boolean)	
	
	cur = sql.ExecQuery2("SELECT * FROM tbl ORDER BY ID LIMIT ?",Array As String(10))
	
	For i = 0 To cur.RowCount -1
			play_button.Tag = i
			play_button.Text = cur.GetString("music_files")
		zang.Tag = i
	Next
		cur.Close
		Scroll1.Panel.Height = stop
End Sub

Sub Scroll1_ScrollChanged(Position As Int)	
	cur = sql.ExecQuery2("SELECT * FROM tbl OFFSET LIMIT ?,?",Array As String(TenRecordPlus,10))
 If Scroll1.ScrollPosition + Scroll1.Height = Scroll1.Panel.Height Then

	For i = 0 To cur.RowCount -1
			play_button.Tag = i
			play_button.Text = cur.GetString("music_files")	
		zang.Tag = i
	Next

	cur.Close
	Scroll1.Panel.Height = stop
	 DoEvents
		If IsNumber(TenRecordPlus) = True Then
	      TenRecordPlus = TenRecordPlus + 10
	   End If
	End If
End Sub

Sub zang_Click
	Dim z As Button
	z = Sender
	tracks = z.Tag

	cur.Position = tracks	
	matn.Text = cur.GetString("music_names")
End Sub

دکمه زنگ رو که بزنیم یه پنل برای تنظیم آهنگ زنگ میاد و یه لیبل که اسمو نشون میده اما اسم آهنگ دیگه رو میگیره برای تنظیم در حالی که اگه لیمیت ندم درسته!

sam.jpg

 

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

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

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

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

play_button.Tag = i
zang.Tag = i

که باید

play_button.Tag = cur.GetInt("id")
  zang.Tag = cur.GetInt("id")

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

البته در کد شما با تغیر اونها چند تغیر دیگه در کدهاتون هم لازم میشه

دوما کاربرد کد زیر رو نمی دونین انگار

cur.Close

شما اومدین در ساب zang_click متغیر cur رو که قبلا بسته اید فراخوانی کردین.که اصل مشکلتون همینه.

خب بهتره کد زیر رو جایگزین کنین

Sub zang_Click
	Try
		Dim z As Button
		z = Sender
		tracks = z.Tag' حواستون به مقدار این باشه
		cur = SQL1.ExecQuery("SELECT * FROM tbl WHERE Id="&z.Tag)
		cur.Position =0	
		matn.Text = cur.GetString("music_names")
	Catch
		Log(LastException)
	End Try
End Sub

عملکرد متغیر tracks رو بازنگری کن تا اشتباهی صورت نگیره

«موفق باشید.»

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

در 1 ساعت قبل، amin.mn گفته است :

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


play_button.Tag = i
zang.Tag = i

که باید


play_button.Tag = cur.GetInt("id")
  zang.Tag = cur.GetInt("id")

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

البته در کد شما با تغیر اونها چند تغیر دیگه در کدهاتون هم لازم میشه

دوما کاربرد کد زیر رو نمی دونین انگار


cur.Close

شما اومدین در ساب zang_click متغیر cur رو که قبلا بسته اید فراخوانی کردین.که اصل مشکلتون همینه.

خب بهتره کد زیر رو جایگزین کنین


Sub zang_Click
	Try
		Dim z As Button
		z = Sender
		tracks = z.Tag' حواستون به مقدار این باشه
		cur = SQL1.ExecQuery("SELECT * FROM tbl WHERE Id="&z.Tag)
		cur.Position =0	
		matn.Text = cur.GetString("music_names")
	Catch
		Log(LastException)
	End Try
End Sub

عملکرد متغیر tracks رو بازنگری کن تا اشتباهی صورت نگیره

«موفق باشید.»

ممنون حالا بعد از اینکه دکمه زنگ رو بزنیم و پنلی که نمایان میشه لیبلش متن همون آهنگ رو میگیره و درست.

اما تو همین پنلی که نمایان میشه چند دکمه داریم، یکی برای تنیم زنگ یکی هشدار و نوتیفیکیشن و آخریش هم کپی کردنه آهنگه

اما وقتی مثلا کپی رو بزنیم آهنگ بعدی کپی میشه! یعنی دکمه کپی آهنگ اول رو بزنیم آهنگ دومی کپی میشه و....

و گفتم قبلا هیچ مشکلی نبود توی عملکرد برنامه اما گفتین این کد زیر رو تغییر بده چه فرقی داره اگه یه توضیح مختصر بدین خوبه.

		'play_button.Tag = i
		play_button.Tag = cur.GetInt("id")

 و درنهایت کدهای ساب کپی کردن:

Sub copy_but_Click
Dim cur As Cursor
cur = sql.ExecQuery("SELECT * FROM tbl")
cur.Position = tracks

	If File.Exists(File.DirRootExternal&"/Ring",cur.GetString("music_files")&".mp3") = True Then
		ToastMessageShow("آهنگ قبلآ ذخیره شده!",False)	
	Else
		File.Copy(File.DirAssets,"ringtones/"&cur.GetString("music_files")&".mp3",File.DirRootExternal&"/Ring",cur.GetString("music_files")&".mp3")
		ToastMessageShow("آهنگ در پوشه Ring ذخیره شد",True)
	End If		
End Sub

خلاصه اینکه قبلا همه چی درست بود تا اینکه به خاطر سریعتر لود شدن 100 پنل اومدم لیمیت دادم و الان سریع لود میشه اما توی این بخش تازه کارم، در کل هم تازه کارم :bigsmile:و ممنون اگه همراهی کنی تا تکمیل کنم این قسمت آخر برنامه رو با تشکر.

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

در 18 ساعت قبل، amin.mn گفته است :

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


play_button.Tag = i
zang.Tag = i

که باید


play_button.Tag = cur.GetInt("id")
  zang.Tag = cur.GetInt("id")

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

البته در کد شما با تغیر اونها چند تغیر دیگه در کدهاتون هم لازم میشه

دوما کاربرد کد زیر رو نمی دونین انگار


cur.Close

شما اومدین در ساب zang_click متغیر cur رو که قبلا بسته اید فراخوانی کردین.که اصل مشکلتون همینه.

خب بهتره کد زیر رو جایگزین کنین


Sub zang_Click
	Try
		Dim z As Button
		z = Sender
		tracks = z.Tag' حواستون به مقدار این باشه
		cur = SQL1.ExecQuery("SELECT * FROM tbl WHERE Id="&z.Tag)
		cur.Position =0	
		matn.Text = cur.GetString("music_names")
	Catch
		Log(LastException)
	End Try
End Sub

عملکرد متغیر tracks رو بازنگری کن تا اشتباهی صورت نگیره

«موفق باشید.»

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

		play_button.Tag = cur.GetInt("id")
		zang.Tag = cur.GetInt("id")

	''''''''cur.Close ابنو کد رو غیر فعال کردم هم تو اکتویتی هم در ساب اسکرول



Sub zang_Click
	Dim z As Button = sender
		tracks = z.Tag -1  ' اینو منهایه 1 کردم
		cur = sql.ExecQuery("SELECT * FROM tblringtone WHERE Id="&z.Tag)
		cur.Position = 0
		matn.Text = cur.GetString("music_names")	
End Sub

بقیه کدها رو هم دست نزدم نمونشم همون کد کپی کردن بود که بالا دادم و حالا درسته کپی میشه اما مطمعن نیستم هنوز باز مشکلی پیش نمیاد تو برنامه احیانآ!!

ممنون.:53:

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

کد این قسمت ها که درسته

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

فقط سعی کنین از متد sql.ExecQuery  در جای مناسب و به روش مناسب استفاده کنید.

از اونجایی که متد cur.Close رو غیر فعال کردین . احتمال عدم استفاده از متدبالا تو کدهاتون هست

این روند برنامه می تونه باعث سرگشتگیتون بشه وگرنه مورد دیگه ای نداره

«موفق باشید.»

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

بایگانی شده

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

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

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