رفتن به مطلب
  • 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 پاسخ به این سوال تاکنون داده شده است

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

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

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

در در 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 لیبل را ساخت؟؟؟

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

در 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

 

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

در 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

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

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

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
لینک ارسال
به اشتراک گذاری در سایت های دیگر

در در 1397/11/24, 22:08:25، KMOHAMMAD گفته است :

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

 

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

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

سلام

اینجوری نمیتونید با حلقه فور به لیبل ها مقدار دهی کنید ، توی ویژوال بیسیک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 و یا یه این لیبل هاتون خاصیت خاصی بدید که اونارو بشناسه و فقط به اونها مقدار بده...

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

ممنون جناب نیکروان یه سوال دیگه فرض کنید 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 کاربر

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