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

مشکل با باتن و آرایه


pedro

سوال

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

مشکلم اینه: بنده 3 تا دکمه درون یک اسکرول ویو با حلقه ایجاد کردم و توی همون حلقه ی3تا background مختلف بر باتن ها گزاشتم حالا برای دکمه ها رویداد کلیک ایجاد کردم اولین سوالم اینه 1-عایا میشه ب جای ایجاد 3 تا sub-click برای 3 تا باتن از یک ساب کلیک استفاده کرد؟
و اما سوال دوم، سوال دومم اینه، ببینید وقتی کاربر روی باتن کلیک میکنه تصویر بکگراند باتن تغییر میکنه میخام توی همون یک دونه ساب کلیک بگم فقد باتنی ک کاربر کلیک کرد تصویرش عوض شه


دوستان اسم تاپیکو برا این آرایه گزاشتم چون حس میکنم با ارایه مشکل حل میشه ولی چیزی ازش نمیدونم
و در اخر هم سورس رو گزاشتم ک قششششنگ متوجه بشید========> سورسم یک تیکه فقد کد داره، نگا کردن بهش خیلی طول نمیکشه بی زمت ی نیگا بندازید

درضمن قبل از من ی نفر همچین سوالی پرسید ک ب جواب نرسید اینم لینک

http://answercenter.ir/topic/3748-تعریف-چندتا-دکمه-باهم/

pj.zip

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

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

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


#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

End Sub

Sub Globals

Private hs As HorizontalScrollView

Dim up,p As BitmapDrawable

Dim b(4) As Button

Dim cunt As Int

End Sub

Sub Activity_Create(FirstTime As Boolean)

Activity.LoadLayout("main")

Dim offx,offy As Int

offy=2%y

offx=3%x

For i=1 To 3

p.Initialize(LoadBitmap(File.DirAssets,"p"&i&".png")) 'این عکس حالته فشرده شدن دکمه است

up.Initialize(LoadBitmap(File.DirAssets,i&".png")) 'این عکس دکمه در حالت عادی و غیر فشرده شدن است

b(i).Initialize("b")

b(i).Background=up

hs.Panel.AddView(b(i),offx,offy,18.4%x,11%y)

offx=offx+25%x

b(i).Tag=i

cunt = i

Next

hs.Panel.Width=offx+6%x

End Sub

Sub Activity_Resume

End Sub

Sub Activity_Pause (UserClosed As Boolean)

End Sub

Sub b_Click

Dim myb As Button = Sender

Dim back As BitmapDrawable

Dim temp As Int = myb.Tag

For i= 1 To cunt

If i = temp Then

back.Initialize(LoadBitmap(File.DirAssets,"p"&myb.Tag&".png"))

myb.Background = back

Else

back.Initialize(LoadBitmap(File.DirAssets,i&".png"))

b(i).Background = back

End If

Next

End Sub

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


#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

End Sub

Sub Globals

Private hs As HorizontalScrollView

Dim up,p As BitmapDrawable

Dim b As Button

End Sub

Sub Activity_Create(FirstTime As Boolean)

Activity.LoadLayout("main")

Dim offx,offy As Int

offy=2%y

offx=3%x

For i=1 To 3

p.Initialize(LoadBitmap(File.DirAssets,"p"&i&".png")) 'این عکس حالته فشرده شدن دکمه است

up.Initialize(LoadBitmap(File.DirAssets,i&".png")) 'این عکس دکمه در حالت عادی و غیر فشرده شدن است

b.Initialize("b")

b.Background=up

hs.Panel.AddView(b,offx,offy,18.4%x,11%y)

offx=offx+25%x

b.Tag=i

Next

hs.Panel.Width=offx+6%x

End Sub

Sub Activity_Resume

End Sub

Sub Activity_Pause (UserClosed As Boolean)

End Sub

Sub b_Click

Dim myb As Button = Sender

ToastMessageShow("تگ"&myb.Tag,False)

End Sub

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

#Region  Project Attributes 
	#ApplicationLabel: B4A Example.....................
	

 

 

اقا حامد اول سپاس فراوون بابت پاسخ، الان ی مرحلش درست شد حالا سوال دومم اینه چطور b.Background رو بعد از ساب کلیک تغییر بدم درواقع میخام اون قسمت ک با کامنت جلوش نوشتم "این عکس حالته فشرده شدن دکمه است" این عکسو میخام ب b.Background نسبت بدم  درواقع عکس کلیک شده هر یک از باتن هاست ک توی فولدر اگه ببینید 6 تا عکسه ک 3 تاش برای غیرفشرده 3تاش برا فشردس حالا اینو چ کنم؟؟؟؟

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

منظورن اینظوری هست؟

Sub b_Click
	Dim myb As Button = Sender
	Dim back As BitmapDrawable
	back.Initialize(LoadBitmap(File.DirAssets,"p"&myb.Tag&".png"))
	myb.Background = back
End Sub
لینک ارسال
به اشتراک گذاری در سایت های دیگر

 

منظورن اینظوری هست؟

Sub b_Click
	Dim myb As Button = Sender
	Dim back As BitmapDrawable
	back.Initialize(LoadBitmap(File.DirAssets,"p"&myb.Tag&".png"))
	myb.Background = back
End Sub

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

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

اقا حامد دم شما گرم درست شد باید ب این صورت تغییر میکرد myb.Background=back

مرسییییییییییی واقعن مرسی نمیدونم چطور تشکر کنم

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

 

منظورن اینظوری هست؟

Sub b_Click
	Dim myb As Button = Sender
	Dim back As BitmapDrawable
	back.Initialize(LoadBitmap(File.DirAssets,"p"&myb.Tag&".png"))
	myb.Background = back
End Sub

 

 

اقا حامد شرمنده هی سوال میپرسم، راهی هست ک بگم وقتی باتن کلیک شد تصویر اون باتن تغییر کنه و اگه تصویر بقیه باتن ها تغییر کرده بود ب حالت اولیه برگرده ببینید درواقع 2 سری عکس وجود داره دیگه یکی برای حالت عادی یکی برای حالت  فشرده شما فک کن الان من رو باتن اول کلیک کردم و همین کدی ک الان شما گفتین عمل کردو تصویر باتن1 تغییر کرد حالا میخام وقتی کاربر بعدش رو باتن 2 یا 3 کلیک کرد تصویر این باتن ک کلیک شد ب حالت تصویر فشرده شده بره و تصویر اون باتن 1 ک قبل این کلیک شد ب حال غیر فشرده یا همون عادی یا همون اولیه برگرده دوباره

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

فکر کنم در این مورد بتونید با tag  و sender مشکل رو حل کنید، آموزشش تو انجمن هست سرچ کنید

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

بایگانی شده

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

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

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