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

رویداد onTouch برای لیبل


mehdi.angidany

سوال

سلام خدمت دوستان و اساتید محترم
شرمنده یک سوال
امکانش هست که با b4a برای labelرویداد تاچ تعریف کنیم?
مثلا تا انگشت رو label قرار گرفت رنگش عوض بشه و تا انگشت برداشته شد تغییر رنگ پیدا کنه?
مثل همون رویداد mouse move ویندوز

ممنون از شما

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

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

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

درود به تک تک دوستان

خیلی ممنون از پاسخ های زیبایتان

:ok:

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

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

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

action down با کلیک خیلی تفاوت داره

شاید کاربر label را لمس کرد اما از کلیک صرف نظر کرد اما  پس از نگه داشتن انگشت، انگشت را move کند و پس از رها کردن انگشت در هر نقطه از صفحه رویداد  action down اجرا میشه و این جالب نیست.منظورم اینه حتی اگه کاربر صرف نظر کنه بازم action down اتفاق میفته

نمیدونم منظورمو درست به عرضتون رسوندم یا نه

من میخوام زمانی که label را لمس کرد رنگ label تغییر کنه و زمانی که کلیک کرد به activity دیگه بفرستمش.یعنی هم زمان هم رویداد touch را داشته باشم هم کلیک

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

دوست عزیز کد شما کاملا درسته اما یک مشکل وجود داره که پس از استفاده از این کد دیگر نمیتوان برای رویداد click آن label کدی نوشت.یعنی basic رویداد کلیک را نادیده میگیرد.

برای این مشکل راه حل چیست؟

 

درود،

رویداد کلیک رو هم به این شکل تعریف کنید:

	Obj1.SetOnClickListener("lbl1_onClick")
Sub lbl1_Click(ViewTag As Object)
	' vaghti label click shod.
End Sub

:fekr: 

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

درود،

رویداد کلیک رو هم به این شکل تعریف کنید:

	Obj1.SetOnClickListener("lbl1_onClick")
Sub lbl1_Click(ViewTag As Object)
	' vaghti label click shod.
End Sub

:fekr: 

ممنون از پاسختان.

همین کار رو کردم اما متاسفانه انگار در بیسیک اولویت فقط با رویداد تاچ هست و رویداد کلیک رو صرف نطر میکنه

اگه لطفا راه دیگه ای هست بفرمایید جناب محمودی عزیز

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

سلام دوستان

کسی نیست راهنمایی کنه؟ کارم خیلی گیره :S

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

درود،

تاپیک رو قبل از 12 ساعت بالا نیارید لطفا!

 

به طور کلی راهی برای داشتن هر دو رویداد تاچ و کلیک برای ویوها (به جز پنل اگه اشتباه نکنم) در بیسیک نیست

اما میتونید با برگشت ندادن مقدار در رویداد تاچ، هر دو رو داشته باشید! (راه اصولی نیست ولی کارتون رو راه میندازه!)

یعنی Return true رو اگه از آخر رویداد تاچ خودتون بردارید، رویداد کلیک هم اجرا خواهد شد!

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

دوست عزیز شما همین کار رو توی باتن میتونید با pressed,enabled انجام بدید...اینجا هم میتونید یه باتن بذاریم روش لیبل و اینکارو انجام بدید

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

درود آقا مهران واقعا دمت گرم بابت راهنماییتون.مشکلم کاملا حل شد :ok:

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

سلام

 

همچنین میتونید یه پنل بذارید و Alpha اش رو 0 کنید تا نامرئی بشه و لیبل رو اد کنید رو پنل...

بعد میتونید از رویداد های تاچ و... پنل استفاده کنید.

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

درود،

از لیست کتابخونه هاتون Reflection رو تیک بزنید.

Sub Globals
	Dim obj1 As Reflector
	Private Label1 As Label
End Sub
Sub Activity_Create(FirstTime As Boolean)
	Activity.LoadLayout("layoutMain")
	obj1.Target =Label1
	obj1.SetOnTouchListener("lbl_onTouch")
End Sub
Sub lbl_onTouch(tag As Object,action As Int,x As Float,y As Float,motionObject As Object) As Boolean
	Select action
		Case Activity.ACTION_DOWN
			Label1.Color=Colors.Red
		Case Activity.ACTION_UP
			Label1.Color=Colors.Blue
	End Select
	Return True
End Sub

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

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

درود،

از لیست کتابخونه هاتون Reflection رو تیک بزنید.

Sub Globals
	Dim obj1 As Reflector
	Private Label1 As Label
End Sub
Sub Activity_Create(FirstTime As Boolean)
	Activity.LoadLayout("layoutMain")
	obj1.Target =Label1
	obj1.SetOnTouchListener("lbl_onTouch")
End Sub
Sub lbl_onTouch(tag As Object,action As Int,x As Float,y As Float,motionObject As Object) As Boolean
	Select action
		Case Activity.ACTION_DOWN
			Label1.Color=Colors.Red
		Case Activity.ACTION_UP
			Label1.Color=Colors.Blue
	End Select
	Return True
End Sub

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

 

دوست عزیز کد شما کاملا درسته اما یک مشکل وجود داره که پس از استفاده از این کد دیگر نمیتوان برای رویداد click آن label کدی نوشت.یعنی basic رویداد کلیک را نادیده میگیرد.

برای این مشکل راه حل چیست؟

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

بایگانی شده

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

مهمان
این موضوع برای عدم ارسال قفل گردیده است.
  • کاربران آنلاین در این صفحه   0 کاربر

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