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

لیمت دادن به مولتی پنل


HAMEDDDR

سوال

سلام من با مولتی پنل یک لیست درست کردم ولی متاسفانه لیمیت نمیشه کد ببیند یکی بگه کجاش مشگل داره

Sub Process_Globals
	Dim sql As SQL
	Dim matn As String
End Sub
'Sina
Sub Globals

	Private ScrollView1 As ScrollView
	Private Label1 As Label
	Dim cur As Cursor
	Dim top As Int = 2%y
	'Dim TenRecordPlus As String = "20"
	'Dim size As Int =0'<-------------------
	Dim total As Int = 10
End Sub

Sub Activity_Create(FirstTime As Boolean)
	
	Activity.LoadLayout("l1")
	If FirstTime Then
	If File.Exists(File.DirInternal,"Mydb.db") = False Then
		File.Copy(File.DirAssets,"Mydb.db",File.DirInternal,"Mydb.db")
	End If
	

		If sql.IsInitialized = False Then
			sql.Initialize(File.DirInternal,"Mydb.db",True)
			
		
		'sql.Initialize(File.DirInternal,"Mydb.db",True)
	End If
		cur = sql.ExecQuery("SELECT * FROM tbl LIMIT 10")
	'cur = sql.ExecQuery("SELECT * FROM tbl")
	For i = 0 To cur.RowCount -1
		cur.Position = i
		Dim pnl As Panel
		pnl.Initialize("")
		ScrollView1.Panel.AddView(pnl,2%x,top,96%x,30%y)
		pnl.LoadLayout("multi")
		Label1.Text = cur.GetString("Titr")
		Label1.Tag = cur.GetInt("id")
		Label1.TextSize = 20
		Label1.TextColor = Colors.Yellow
		Label1.Gravity=Gravity.CENTER
		top = top + 15%y
		ScrollView1.Panel.Height = top + 3%y
	Next

	' به دست اوردن اخرین رکورد جدول
	Dim ax As String
	'Dim Cursor As Cursor
'	Cursor = sql.ExecQuery("SELECT * FROM tbl")
		cur = sql.ExecQuery("SELECT * FROM tbl LIMIT 10")
	ax=cur.RowCount-1
		LogColor(ax,Colors.Magenta)
		
	End If
End Sub
Sub sv_ScrollChanged(Position As Int)
	If ScrollView1.ScrollPosition + ScrollView1.Height = ScrollView1.Panel.Height  Then
	cur = sql.ExecQuery2("SELECT * FROM tbl LIMIT ?,?",Array As String(total,10))'<----------------------- نذاشتیOFFSET
	
		total = total + 10
	
	
		'==========================================================
		For i = 0 To cur.RowCount -1
			
			cur.Position = i
			Dim pnl As Panel
			pnl.Initialize("")
			ScrollView1.Panel.AddView(pnl,2%x,top,96%x,30%y)
			pnl.LoadLayout("multi")
			Label1.Text = cur.GetString("Titr")
			Label1.Tag = cur.GetInt("id")
			Label1.TextSize = 20
			Label1.TextColor = Colors.Yellow
			Label1.Gravity=Gravity.CENTER
			top = top + 15%y
			ScrollView1.Panel.Height = top + 3%y
		Next
		'=========================================================
		cur.Close
		
		ProgressDialogHide
	End If
 
End Sub
Sub Label1_Click
	Dim l As Label
	l = Sender
	matn = l.Tag
	LogColor(matn,Colors.Red)
	
	StartActivity(text)
End Sub

 

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

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

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

سلام

خوب دوست عزیزمون گفتن از offset استفاده کنید

البته بهتون بگم که باید زمانی offset افزایش پیدا کنه که به انتهای اسکرول رسیده

اول شما بیا یک Query بزن که مقدار رو مثلا 10 تا لود کنه

SELECT * FROM tbl LIMIT 10 OFFSET "&offset&"

offset توی Query
یک متغییر میزاریم که میخوایم
Query
تغییر پیداکنه هربار

 

و بعد از اون توی رویداد  scroll Changed این کد رو میزاریم که وقتی به انتها رسید برامون چند 10 تا دیگ لود کنه

 

If ScrollView1.ScrollPosition + ScrollView1.Height = ScrollView1.Panel.Height Then
			offset = offset + 10

 

حالا میتونی توی همین رویداد از اول کد مولتی بزاری یا اینکه سلیقه بخرج بدی یه Sub واسه  Query و مولتی پنل بسازی

و فقط ازش استفاده کنی که کدات جمع و جور تر بشه :praising:

 

دیگ فک نکنم جای مشکلی باشه تمام توضیحات خوانا و قابل درکه دیگ :girl_pardon:

 

 

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

بایگانی شده

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

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

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