اطلاعیه

کاربر گرامی

به انجمن برنامه نویسی AnswerCenter.ir خوش آمدید

 برای استفاده از تمامی امکانات سایت لطفا در انجمن عضو شوید


  • 0
afshin006

مقدار دهی لیبل از طریق حلقه فور

سوال

من از طریق منو دیزاینر، یه لایوت ساختم و چند لیبل روی آن قرار دادم  آنها را معرفی کردم، حالا میخاهم از طریق یک حلقه فور به آنها مقدار دهی کنم اما خطا میده و قبول نمی کنه، به نظر شما چگونه باید آن ها را از طریق حلقه مقدار دهی کنم ؟

 

 

 


    Private Label1 As Label
    Private Label2 As Label
    Private Label3 As Label
    Private Label4 As Label
    Private Label5 As Label
    Private Label6 As Label
 

for i = 1 to 6
    Label(i).text=i
next
 

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


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

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

  • 0

ممنون جناب نیکروان یه سوال دیگه فرض کنید 10 تا لیبل داریم حالا رندوم یک عدد از یک تا 10 امتخاب میکنیم هر عددی ساخته شد همان لیبل مقدار دهی بشه مثلا اگر عدد یک بود لیبل یک مقدار دهی بشه اگر عدد هفت بود لیبل هفت، برای این باید چه کار کنم ؟؟

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


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

سلام

اینجوری نمیتونید با حلقه فور به لیبل ها مقدار دهی کنید ، توی ویژوال بیسیک6 میشد از ویو ها آرایه ساخت و به این صورت بهشون مقدار داد اما تو b4a فکر نکنم بشه.

اگه میخواین به ترتیب از شماره 1 تا 6 رو به لیبل ها بدید میتونید اینکارو بکنید:

یه متغیر تعریف کنید

Sub Globals
Dim i As Int=1
End Sub

و بعد:

For Each v As View In Activity.GetAllViewsRecursive
	If v Is Label Then
		Dim lbltemp As Label=v
		lbltemp.Text=i
		
		i=i+1		
	End If
Next

این میاد میگرده هرچی لیبل هست توی اکتیویتی تون به ترتیب از شماره 1 تا 6 مقدار دهی میکنه.

اگه لیبل های دیگه ای هم توی اکتیویتی دارید و نمیخواین با اینا قاطی بشه میتونید این 6تا لیبل رو توی یک پنل اد کنید و در کد بالا جای activity بنویسید panel1 و یا یه این لیبل هاتون خاصیت خاصی بدید که اونارو بشناسه و فقط به اونها مقدار بده...

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


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

ممنون جناب نیکروان یه سوال دیگه فرض کنید 10 تا لیبل داریم حالا رندوم یک عدد از یک تا 10 امتخاب میکنیم هر عددی ساخته شد همان لیبل مقدار دهی بشه مثلا اگر عدد یک بود لیبل یک مقدار دهی بشه اگر عدد هفت بود لیبل هفت، برای این باید چه کار کنم ؟؟

خواهش میکنم.

بازم بگم ازاونجایی که نمیشه ویو های b4a رو آرایه ای کرد باید به هرکدوم از لیبل هاتون به ترتیب تگ بدید.

مثلا تگ لیبل1 رو از داخل دیزاینر بذارید 1 و تگ لیبل2 رو بذارید 2 و...

بعد میتونید از طریق تگ این لیبل هارو شناسایی کنید و هرعددی که بدست اومد همون لیبل مقدار بگیره:

Dim r As Int=Rnd(1,10) 'عدد رندم انتخاب شد'

For Each v As View In Activity.GetAllViewsRecursive
	If v Is Label Then
		Dim lb As Label=v
		If lb.Tag=r Then
			lb.Text="مقدار :D" 'همون لیبلی که از رندوم بدست اومد مقدار دهی شد'
		End If	
	End If
Next

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


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
  • 0
در در 1394/12/20, 13:55:51، afshin006 گفته است :

من از طریق منو دیزاینر، یه لایوت ساختم و چند لیبل روی آن قرار دادم  آنها را معرفی کردم، حالا میخاهم از طریق یک حلقه فور به آنها مقدار دهی کنم اما خطا میده و قبول نمی کنه، به نظر شما چگونه باید آن ها را از طریق حلقه مقدار دهی کنم ؟

 

 

 


    Private Label1 As Label
    Private Label2 As Label
    Private Label3 As Label
    Private Label4 As Label
    Private Label5 As Label
    Private Label6 As Label
 

for i = 1 to 6
    Label(i).text=i
next
 

 

چطور میشه با حلقه بجای دیزاینر همین 6 لیبل را ساخت؟؟؟

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


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
  • 0
در 19 ساعت قبل، KMOHAMMAD گفته است :

 

چطور میشه با حلقه بجای دیزاینر همین 6 لیبل را ساخت؟؟؟

سلام

این کد 6 تا لیبل به اندازه 100*10 زیر هم به ترتیب ایجاد میکنه

	Dim top As Int=0
For i=0 To 6
	Dim lab As Label
	lab.Initialize("lab")
	Activity.AddView(lab,0,top,100%x, 10%x)
	lab.Tag=i
	top=top+10%x
Next

 

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


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
  • 0
در 3 ساعت قبل، m007moh گفته است :

سلام

این کد 6 تا لیبل به اندازه 100*10 زیر هم به ترتیب ایجاد میکنه


	Dim top As Int=0
For i=0 To 6
	Dim lab As Label
	lab.Initialize("lab")
	Activity.AddView(lab,0,top,100%x, 10%x)
	lab.Tag=i
	top=top+10%x
Next

 

 پیاده سازی شد ولی اینجوری نشون میده
1.JPG

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


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

به شکل زیر تغییر بدین

Dim top As Int=0
For i=0 To 6
	Dim lab As Label
	lab.Initialize("lab")
	Activity.AddView(lab,0,top,100%x, 10%y)
	lab.Tag=i
	top=top+11%y
Next

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


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
  • 0
در در 1397/11/24, 22:08:25، KMOHAMMAD گفته است :

 پیاده سازی شد ولی اینجوری نشون میده
1.JPG

 

خب درسته همه را به رنگ آبی پشت هم ردیف کرده یکی نشون میده یا کاری ک جناب شاهپری گفتن انجام بده یا یه متن بذار واسه لیبل یا رنگ رندوم بذار یا .... تا متفاوت بشن از هم 

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


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

مطالب شما نیاز است به تایید مدیران برسد

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

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از ۷۵ اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به عنوان یک لینک به جای

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.