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

ترتیب چند لیبل با طول متفاوت متن


discoversh

سوال

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

نمونه عکس پیوست شد

post-1034-0-11762500-1451427733_thumb.png

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

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

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

درود

این سورس رو دانلود و تست کنید

رمز : basic4android.org

 

قبلا آقای محمد احمدی عزیز توی انجمن قرار داده بودن

 

فقط شما باید همچین چیزی رو به صورت حلقه در بیارید

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

سپاس استاد ایزدی کمک زیادی بهم میکنه راهنمایتون.حالا اگه من بخام چندتا سطر از جدول رو توی اکتیویتی نمایش بدم با این کد میشه.مثلن علاوه بر سطر matn یه سطر titr یه سطر اضاف کرد؟

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

بله خب بستگی به دیتاییس شما داره

ببینید روش های مختلفی وجود داره

من و فرزاد موسوی برای یکی از برنامه هامون برای اینکه ارتفاع Label و Panel و همه چیز رو با هم هماهنگ کنیم به این صورت عمل کردیم :

Sub Globals
	Dim anim1,anim2 As Animation
	Private pnlSlide As Panel
	Dim boolslide As Boolean = True
	Private Button6 As Button
	Private lbltxtreject As Label
	Private lblTimeReject As Label
	Private lblDateReject As Label
	Private lblNumReject As Label
	
	Dim xxx,ph,p_h As Int
	Private btnDeleteReject As Button
	Private scrollAval As ScrollView
	Dim tanizmlbl As StringUtils
	Private pnlReject As Panel
End Sub

Sub Activity_Create(FirstTime As Boolean)
	Activity.LoadLayout("Aval")
	If File.Exists(File.DirInternal,"block.db") = False Then
	File.Copy(File.DirAssets,"block.db",File.DirInternal,"block.db")
	End If
	sql1.Initialize(File.DirInternal,"block.db",False)
	cur1 = sql1.ExecQuery("SELECT * FROM tblreject")
	xxx = cur1.RowCount-1
	load
End Sub
Sub load
	For i=0 To cur1.RowCount-1
		cur1.Position=xxx
		xxx=xxx-1
		Dim p1 As Panel
		p1.Initialize("")
		p1.LoadLayout("lPanelReject")
		lblDateReject.Text= "در تاریخ : " & cur1.GetString("tarikh") & " و ساعت : " & cur1.GetString("saat") 
		lblNumReject.Text= "پیامک دریافتی از طرف : " & cur1.GetString("num") 
		lbltxtreject.Text = cur1.GetString("txt") 
		btnDeleteReject.Tag = cur1.GetString("id")
		scrollAval.Panel.AddView(p1,0,ph,100%x,80dip)
		p_h= tanizmlbl.MeasureMultilineTextHeight(lbltxtreject,cur1.GetString("txt")) + 8%y
		lbltxtreject.Height = p_h
		p1.Height=p_h+90dip
		pnlReject.Height=p1.Height
		ph=ph+p_h+90dip+2%y
		scrollAval.Panel.Height=ph
	Next
End Sub

هیچ مشکلی هم نداره و کاملا درست عمل میکنه

فقط یک خورده Integer بازیش کردیم  :fekr:

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

سلام

تو دیتا بیست یه ستون به نام size درست کن وبرا هر آیتمت اندازه مورد نظرتو داخل ستون بنویس بعد تو حلقه بیا کد زیرو بنویس:

label1.TextSize=cur1.Getint("size")
لینک ارسال
به اشتراک گذاری در سایت های دیگر

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

الان که من کدهاتون رو زدم  اندازه متنام رو برابر اندازه اسکرولم قرار دادم ولی هیچی نشون نمیده توی صفحم

کلی روزه گیره همین کدهام :fekr:

scrollAval.Panel.Height=ph1+ph2+ph3+ph4

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

 

سلام

تو دیتا بیست یه ستون به نام size درست کن وبرا هر آیتمت اندازه مورد نظرتو داخل ستون بنویس بعد تو حلقه بیا کد زیرو بنویس:

label1.TextSize=cur1.Getint("size")

سپاس از راهنمایتون.منظور از سایز,طول متون بود

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

بیا تو تاپیک زیر آخرین اسپمو سورسشو دانلود کن همون چیزیه که میخوای:

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

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

درود به دوستان عزیز بعد از گرفتن کلی راهنمایی از اساتید و دوستای خوبم و کلی آزمون و خطا نونستم چند تا سطر از دیتابیس رو فراخونی و بصورت مرتب شده توی اکتیویتیم نشون بدم.گفتم کدهام رو بزارم شاید یکی مثه من مشکلش حل بشه.انشالله

Dim lblsBody As Label
Dim lblsTitle As Label

sc1.Panel.AddView(lblsTitle,0,0,sc1.Width,30dip)
sc1.Panel.AddView(lblsBody,0,40dip,sc1.Width,30dip)

    lblsTitle.Text=Main.cur.GetString("sTitle")
	lblsTitle.TextSize = 20
	lblsBody.Text = Main.cur.GetString("sBody")
	lblsBody.TextSize = 20
	lblsBody.Color=Colors.Yellow
	
	Dim su1 As StringUtils
	Dim ht1,ft1,ht5,ft5 As Int
	
ht1=su1.MeasureMultilineTextHeight(lblsTitle,lblsTitle.Text)
	ft1=ht1 * 1.55
	lblsTitle.Height=ht1
ht5=su1.MeasureMultilineTextHeight(lblsBody,lblsBody.Text)
	ft5=ht1 * 1.55
	lblsBody.Height=ht5
	lblsBody.Top=ht1 + 5dip
	sc1.Panel.Height =ft1 + ft5 + 10%y

من کد رو برا دوتا سطر نوشتم و بقیه همینطور بترتیب میشه ادامه داد

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

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

sc1.Panel.AddView(lblsTitle,0,0,sc1.Width,7%y)
	sc1.Panel.AddView(lblsOtherName,0,lblsTitle.Height,sc1.Width,7%y)
	sc1.Panel.AddView(lblsSIRange,0,lblsOtherName.Height,sc1.Width,7%y)
	sc1.Panel.AddView(lblsBody,0,lblsSIRange.Height,sc1.Width,sc1.Height)

    lblsTitle.Text=Main.cur.GetString("sTitle")
	lblsTitle.TextColor = Colors.Blue
	lblsTitle.Color = Colors.Yellow
	lblsTitle.TextSize = 27
	
	lblsOtherName.Text=Main.cur.GetString("search_name")
	lblsOtherName.TextColor = Colors.red
	lblsOtherName.Color = Colors.green
	
	lblsSIRange.Text=Main.cur.GetString("si_units")
	lblsSIRange.TextColor = Colors.red
	lblsSIRange.Color = Colors.blue


	lblsBody.Text = Main.cur.GetString("sBody")
	lblsBody.TextColor = Colors.Black
	lblsBody.TextSize = 22
لینک ارسال
به اشتراک گذاری در سایت های دیگر

بایگانی شده

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

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

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