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

AnswerCenter

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

  • مرجع پاسخگویی
  • تولید آموزش
  • سفارش پروژه

درخواست سفارش پروژه

اطلاعیه

کاربر گرامی

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

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


  • 0
afshin006

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

سوال

afshin006    6

کاربر عادی

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

 

 

 


    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
afshin006    6

کاربر عادی

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

  • پسندیدن 1

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


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
  • 1
پژمان نیکروان    5,996

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

سلام

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

  • پسندیدن 2

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


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
  • 0
پژمان نیکروان    5,996

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

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

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


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

کاربر عادی

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

کاربر رو به رشد

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

کاربر عادی

در 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
محمدرضا شاهپیری    3,406

معاون انجمن

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

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
  • پسندیدن 1

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


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

کاربر رو به رشد

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

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

 

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

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


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

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

مهمان
پاسخ به این سوال ...

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

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

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

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

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


×
×
  • جدید...