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

اعمال نشدن تنظیمات متن روی لیبل


arfan2x

سوال

سلام خدمت شما.

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

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

قسمتی از متن اعمال میشه و بقیه متن تغییری درش بوجود نمیاد.

 

کدهایی که استفاده کردم واسه فراخوانی متن و عکس از دیتابیس:

	Dim h As Int
	For i = 0 To 4
		
		If Cur.GetString("Matn"&i) <> Null Then
			Label1.Initialize("Label1")
			Label1.Text = Cur.GetString("Matn"&i)
			Label1.TextColor = Colors.Black
			Label1.TextSize = 20
			Label1.Gravity = Gravity.RIGHT
			Label1.Padding = Array As Int(2,0,0,5)
				
			ScrollView1.Panel.AddView(Label1,0,h+2%Y,ScrollView1.Width-8,ScrollView1.Height)
			ScrollView1.Width = 100%x
			Label1.Height = strut.MeasureMultilineTextHeight(Label1 , Label1.Text) + 10
			h = h + strut.MeasureMultilineTextHeight(Label1 , Label1.Text) + 70
			ScrollView1.Panel.Height = h
	
			
		End If
	
		If Cur.GetString("Ax"&i) <> Null Then
			Dim ImageView1 As ImageView
			ImageView1.Initialize("imageView")
			ImageView1.Tag = Cur.GetString("Ax"&i)
		
			ScrollView1.Panel.AddView(ImageView1,0,h,ScrollView1.Width,ScrollView1.Height)
			Main.bitmp(i).InitializeSample(File.DirAssets,Cur.GetString("Ax"&i)&".jpg",Activity.Height,Activity.Width)
			ImageView1.Bitmap = Main.bitmp(i)
		
			If Main.bitmp(i).Width > 100%x Then
				ImageView1.Width = 100%x
				ImageView1.Height = (ImageView1.Width / Main.bitmp(i).Width)*Main.bitmp(i).Height
				ImageView1.Gravity = Gravity.FILL
			
			Else
				
				ImageView1.Width = Main.bitmp(i).Width
				ImageView1.Height = Main.bitmp(i).Height
				ImageView1.Left = (100%x - ImageView1.Width)/2
				ImageView1.Gravity = Gravity.FILL
						
			End If
		
			h = h + ImageView1.Height + 10
			ScrollView1.Panel.Height = h
		
		End If
		
	Next

لطفاً مث همیشه راهنمایی بفرمایید تشکر

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

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

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

با سلام !

از آنجا که من از پرسشتون مطلب رو  درک کردم....این بود: جایی از متن تنظیمات اعمال میشه و جایی نمیشه.

 

خب الان شما باید در بخش فراخوانی دقت کنید.

کد های نوشته شدییتون رو مجددا

مرور کنید حتما در گرفتن اندازه  متن از دو مقدار استفاده شده.

اندازه متن رو از یک فایل بخونید.

 

موفق باشید.

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

سلام. خدمت شما عرض کنم من هرچی به ذهنم برسه رو امتحان می کنم اگه واقعاً به جواب نرسم و نتونم پست می ذارم.

الان هم همینطوره هر راهی رو امتحان کردم اما بازم همینجوریه. جالب اینجاست روشهای دیگه واسه گذاشتن چندین عکس و متن و نمایش تو لیبل رو هم امتحان کردم

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

اما اگه فقط متن باشه به درستی کار می کنه.

سورس رو می ذارم لطفاً هرکی از دوستان وقت کرد یه نگاهی بندازه این مشکل ما رو حل کنه. اجرش با خدا

دانلود سورس

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

در در 1397/04/01, 19:17:41، arfan2x گفته است :

سلام. خدمت شما عرض کنم من هرچی به ذهنم برسه رو امتحان می کنم اگه واقعاً به جواب نرسم و نتونم پست می ذارم.

الان هم همینطوره هر راهی رو امتحان کردم اما بازم همینجوریه. جالب اینجاست روشهای دیگه واسه گذاشتن چندین عکس و متن و نمایش تو لیبل رو هم امتحان کردم

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

اما اگه فقط متن باشه به درستی کار می کنه.

سورس رو می ذارم لطفاً هرکی از دوستان وقت کرد یه نگاهی بندازه این مشکل ما رو حل کنه. اجرش با خدا

دانلود سورس

 

سلام 

سورس تون رو بررسی کردم 

شما میتونید وقتی روی دکمه بزرگ شدن متن کلیک شد، دوباره تمام ویوهایی که درون اسکرول ویو قرار داره رو مجددا با سایز لیبلی که میخوایید لود کنید.

به این صورت که ابتدا تمام ویوهای درون اسکرول ویو رو حذف کنید و مجددا با اندازه لیبلی که میخوایید اضافه کنید.

به این صورت در ساب های تغییر اندازه متن لیبل:

Sub BtnBozorg_Click
	
	ScrollView1.Panel.RemoveAllViews
	Dim h As Int
	For i = 0 To 4
		
		If Cur.GetString("Matn"&i) <> Null Then
			Label1.Initialize("Label1")
			Label1.Text = Cur.GetString("Matn"&i)
			Label1.TextColor = Colors.Black
			Label1.TextSize = 35
			
			Label1.Gravity = Gravity.RIGHT
			Label1.Padding = Array As Int(2,0,0,5)
				
			ScrollView1.Panel.AddView(Label1,0,h+2%Y,ScrollView1.Width-8,ScrollView1.Height)
			ScrollView1.Width = 100%x
			Label1.Height = strut.MeasureMultilineTextHeight(Label1 , Label1.Text) + 10
			h = h + strut.MeasureMultilineTextHeight(Label1 , Label1.Text) + 70
			ScrollView1.Panel.Height = h
	
			
		End If
	
		If Cur.GetString("Ax"&i) <> Null Then
			Dim ImageView1 As ImageView
			ImageView1.Initialize("imageView")
			ImageView1.Tag = Cur.GetString("Ax"&i)
		
			ScrollView1.Panel.AddView(ImageView1,0,h,ScrollView1.Width,ScrollView1.Height)
			Main.bitmp(i).InitializeSample(File.DirAssets,Cur.GetString("Ax"&i)&".jpg",Activity.Height,Activity.Width)
			ImageView1.Bitmap = Main.bitmp(i)
		
			If Main.bitmp(i).Width > 100%x Then
				ImageView1.Width = 100%x
				ImageView1.Height = (ImageView1.Width / Main.bitmp(i).Width)*Main.bitmp(i).Height
				ImageView1.Gravity = Gravity.FILL
			
			Else
				
				ImageView1.Width = Main.bitmp(i).Width
				ImageView1.Height = Main.bitmp(i).Height
				ImageView1.Left = (100%x - ImageView1.Width)/2
				ImageView1.Gravity = Gravity.FILL
						
			End If
		
			h = h + ImageView1.Height + 10
			ScrollView1.Panel.Height = h
		
		End If
		
	Next

	
End Sub

Sub BtnKoochek_Click
	
	ScrollView1.Panel.RemoveAllViews
	Dim h As Int
	For i = 0 To 4
		
		If Cur.GetString("Matn"&i) <> Null Then
			Label1.Initialize("Label1")
			Label1.Text = Cur.GetString("Matn"&i)
			Label1.TextColor = Colors.Black
			Label1.TextSize = 15
			
			Label1.Gravity = Gravity.RIGHT
			Label1.Padding = Array As Int(2,0,0,5)
				
			ScrollView1.Panel.AddView(Label1,0,h+2%Y,ScrollView1.Width-8,ScrollView1.Height)
			ScrollView1.Width = 100%x
			Label1.Height = strut.MeasureMultilineTextHeight(Label1 , Label1.Text) + 10
			h = h + strut.MeasureMultilineTextHeight(Label1 , Label1.Text) + 70
			ScrollView1.Panel.Height = h
	
			
		End If
	
		If Cur.GetString("Ax"&i) <> Null Then
			Dim ImageView1 As ImageView
			ImageView1.Initialize("imageView")
			ImageView1.Tag = Cur.GetString("Ax"&i)
		
			ScrollView1.Panel.AddView(ImageView1,0,h,ScrollView1.Width,ScrollView1.Height)
			Main.bitmp(i).InitializeSample(File.DirAssets,Cur.GetString("Ax"&i)&".jpg",Activity.Height,Activity.Width)
			ImageView1.Bitmap = Main.bitmp(i)
		
			If Main.bitmp(i).Width > 100%x Then
				ImageView1.Width = 100%x
				ImageView1.Height = (ImageView1.Width / Main.bitmp(i).Width)*Main.bitmp(i).Height
				ImageView1.Gravity = Gravity.FILL
			
			Else
				
				ImageView1.Width = Main.bitmp(i).Width
				ImageView1.Height = Main.bitmp(i).Height
				ImageView1.Left = (100%x - ImageView1.Width)/2
				ImageView1.Gravity = Gravity.FILL
						
			End If
		
			h = h + ImageView1.Height + 10
			ScrollView1.Panel.Height = h
		
		End If
		
	Next
End Sub

 

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

بایگانی شده

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

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

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