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

مشکل با tag&sender


mahdikam

سوال

سلام اقا من میخام وقتی روی label1کلیک میشه یه صفحه جدید باز بشه و تو لیبل فیلد مشخصات من رو نشون بده

دمتون گرم

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

اینم کد من:

Sub Globals
	'These global variables will be redeclared each time the activity is created.
	'These variables can only be accessed from this module.

	Private Label1 As Label
	Private ScrollView1 As ScrollView
	Dim cur1 As Cursor
	Dim SQL1 As SQL
	Dim stop As Int=3%y
	Private Panel1 As Panel
	Private Label2 As Label
End Sub

Sub Activity_Create(FirstTime As Boolean)
	'Do not forget to load the layout file created with the visual designer. For example:
	Activity.LoadLayout("4")
	If File.Exists(File.DirInternal,"dd.db")=False Then
	File.Copy(File.DirAssets,"dd.db",File.DirInternal,"dd.db")
	End If
SQL1.Initialize(File.DirInternal, "dd.db",True)
cur1=SQL1.ExecQuery("select * from moshakhasat")
For i= 0 To cur1.RowCount-1
cur1.Position = i
Dim p As Panel
p.Initialize("p")
ScrollView1.Panel.AddView(p,0,stop,100%x,100%y)
 stop=stop+35%y
p.LoadLayout("main")
Label1.Text =cur1.GetString("name")
ScrollView1.Panel.Height =stop
Next
End Sub


Sub Label1_Click
	StartActivity("s")
	
End Sub

prozhe.rar

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

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

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

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

 

بعد در این تکه کد گفتم یه پنل فرضی درست کن

 

مشخصات پنلی که روش کلیک شده رو بده به اون پنل فرضیه

 

حالا ار مشخصاتش که یکیش تگ هست(همونی که توضیح دادم) بریز داخل یه متغیر در اکتیویتی دوم

 

حالا اکتیویتی رو اجرا کن

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

بنده دقیقا متوجه منظورتون نشدم . یعنی وقتی روی یک لیبل کلیک شد یک لیبل دیگه نمایش داده بشه ؟

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

خیر .تو بروزه من یه بنل گذاشتم و یه لیبل که توش داره فیلد nameرو از دیتابیس میخونه حالا میخام وقتی رو همون لیبل کلیک میشه یه صفحه جدید باز بشه که توش یه لیبل هم تعریف کردیم و لیبل فیلد moshakhasatرو از دیتابیس نشون بده

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

درود

ببینید شما کارهایی رو که میگم باید انجام بدید...

1- توی Process_Globals یک متغیر از نوع String یا Int تعریف کنید مثلا: dim stid as string

2- به جای Label1.Tag=cur1.GetString("moshakhasat") بیایید که اومدید moshakhasat رو به Tag دادید ... بیایید ID رو به Tag بدید ..

3- توی Sub Globals همچین چیزی رو تعریف کنید : dim l1 as Label

4- توی Sub Label1_Click قبل از StartActivity بیایید بگید :

l1 = sender
stid = l1.tag

بعدش هم که همون کد StartActivity رو بزارید ...

5- اون SQL و Cursor رو هم از Sub Globals ببرید توی Process Globals !!!

 

خب حالا میریم به Activity دوم ... که اسمش s هست !!!

توی Activity Resume بیایید بگید :

Main.cur1=MainSQL1.ExecQuery("select * from moshakhasat WHERE id = " & Main.stid)
Main.cur1.Position = 0

و بعدش هم Label رو مساوی GetString فیلد متن قرار بدید...

 

از این کامل تر Erel هم نمیتونه توضیح بده :S

 

تمام کدها رو به صورت دستی نوشتم . اگه خطا داشت بر طرفش کنید دیگه ...

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

اقا مهدی همه کارایی که گفتیدو کردم ولی تو صفحه دوم به مشکل خوردم

Main.cur1=SQL1.ExecQuery("select * from moshakhasat WHERE id = " & Main.stid)
Main.cur1.Position = 0
Label1.Text= cur1.GetString("moshakhasat")

تو خط اول کلمه sql1به رنگ قرمزه یعنی نشناخته 

و تو تو خط سوم هم کلمهcur1همین مشکلو داره

ایراد از چیه؟

در ضمن متغیر هاشونم بردم تو قسمتSub Process_Globals

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

برادر ما کمکت میکنیم ولی شما خودت باید تلاش کنی

 

کد اکتیویتی اول

#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
	'These global variables will be declared once when the application starts.
	'These variables can be accessed from all modules.
	Dim SQL1 As SQL
End Sub

Sub Globals
	'These global variables will be redeclared each time the activity is created.
	'These variables can only be accessed from this module.

	Private Label1 As Label
	Private ScrollView1 As ScrollView
	Dim cur1 As Cursor
	Dim stop As Int=3%y
	Private Panel1 As Panel
	Private Label2 As Label
End Sub

Sub Activity_Create(FirstTime As Boolean)
	'Do not forget to load the layout file created with the visual designer. For example:
	Activity.LoadLayout("4")
	If File.Exists(File.DirInternal,"dd.db")=False Then
		File.Copy(File.DirAssets,"dd.db",File.DirInternal,"dd.db")
	End If
		SQL1.Initialize(File.DirInternal, "dd.db",True)
			cur1=SQL1.ExecQuery("select * from moshakhasat")
		For i= 0 To cur1.RowCount-1
			cur1.Position = i
		Dim p As Panel
			p.Initialize("p")
			ScrollView1.Panel.AddView(p,0,stop,100%x,100%y)
 			stop=stop+35%y
	p.LoadLayout("main")
		Label1.Text =cur1.GetString("name")
		Panel1.Tag = i
		ScrollView1.Panel.Height =stop
Next
End Sub


Sub Label1_Click
	'StartActivity("s")
	'Dim iz As Label
	'iz=Sender
	'Label1.Text=iz.Tag
End Sub
Sub Panel1_Click
	Dim p1 As Panel
	p1 = Sender
	s.pos = p1.Tag
	StartActivity(s)
End Sub

کد اکتیویتی دوم

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

Sub Process_Globals
	'These global variables will be declared once when the application starts.
	'These variables can be accessed from all modules.
	Dim pos As Int
	
End Sub

Sub Globals
	'These global variables will be redeclared each time the activity is created.
	'These variables can only be accessed from this module.
	Private Label1 As Label
End Sub

Sub Activity_Create(FirstTime As Boolean)
	'Do not forget to load the layout file created with the visual designer. For example:
	Activity.LoadLayout("2")
	Dim cur1 As Cursor
	cur1=Main.SQL1.ExecQuery("select * from moshakhasat")
	cur1.Position = pos
	Label1.Text = cur1.GetString("moshakhasat")
End Sub

Sub Activity_Resume

End Sub

Sub Activity_Pause (UserClosed As Boolean)

End Sub



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

اقا باور کنید من کل تلاشمو میکنم ولی وقتی کدارو بلد نیستم چه جوری باید تلاش کنم؟ تازه کارم

یه سوال دیگه

چرا شما این کدو تو بنل کلیک نوشتید؟

Sub Panel1_Click
	Dim p1 As Panel
	p1 = Sender
	s.pos = p1.Tag
	StartActivity(s)
End Sub

من میخاستم تو لیبل کلیک بنویسم و همین کد شما رو گذاشتم تو لیبل کلیک ولی کار نکرد ایراد از چیه؟

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

بایگانی شده

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

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

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