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

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


batman1

سوال

سلام.

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


		Sub Globals
	Private Label1 As Label
	Dim rs As RichString
End Sub

Sub Activity_Create(FirstTime As Boolean)
	Activity.LoadLayout("Layout1")
	rs.Initialize("www.{R}Basic{R}4{R}Android{R}.org")
	rs.Color2(Colors.Red, "{R}")
	Label1.Text = rs
End Sub

همه چیز اوکیه. درست کار میکنه.

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

اونو چه طوری انجام بدم؟!

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

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

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

در 30 دقیقه قبل، batman1 گفته است :

سلام.

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



		Sub Globals
	Private Label1 As Label
	Dim rs As RichString
End Sub

Sub Activity_Create(FirstTime As Boolean)
	Activity.LoadLayout("Layout1")
	rs.Initialize("www.{R}Basic{R}4{R}Android{R}.org")
	rs.Color2(Colors.Red, "{R}")
	Label1.Text = rs
End Sub

همه چیز اوکیه. درست کار میکنه.

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

اونو چه طوری انجام بدم؟!

سلام دوست عزیزم، قبلا بحث شده در این باره

اینجا 

و 

اینجا

موفق باشی 

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

در هم اکنون، batman1 گفته است :

سلام.

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



		Sub Globals
	Private Label1 As Label
	Dim rs As RichString
End Sub

Sub Activity_Create(FirstTime As Boolean)
	Activity.LoadLayout("Layout1")
	rs.Initialize("www.{R}Basic{R}4{R}Android{R}.org")
	rs.Color2(Colors.Red, "{R}")
	Label1.Text = rs
End Sub

همه چیز اوکیه. درست کار میکنه.

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

اونو چه طوری انجام بدم؟!

سلام

متوجه منظورتون نمیشم اگر منظورتون اینه که متنی که از دیتابیس میگیرید و میریزید داخل لیبل رو رنگش رو عوض کنید میتونید از این کد کمک بگیرید:

Sub highlightTextInString(text1 As String, SearchText As String , HighlightColor As Int) As RichString
	Dim RS As RichString
	RS.Initialize(text1)
	
	Dim index As Int = 0
	For i = 0 To text1.Length
		Dim startIndex As Int = text1.ToLowerCase.IndexOf2(SearchText.ToLowerCase , index)
		If startIndex > -1 Then
			Dim endIndex As Int = startIndex + SearchText.Length
			index = endIndex
			RS.BackColor(HighlightColor, startIndex, endIndex)
		Else
			Exit
		End If
	Next
	
	Return RS
End Sub

این کد در اصل برای این بوده که موقع سرچ یک قسمت مورد نظر رو رنگی کنیم ولی برای کار های دیگه هم قابلیت استفاده رو داره

شما یک نگاهی هم به تاپیک زیر بندازید 

اگر هم که منظورتون اینه که متن های داخل فیلد های دیتابیس رو رنگی کنید که فکر نکنم امکان پذیر باشه

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

در 1 ساعت قبل، Mthzf1384 گفته است :

سلام

متوجه منظورتون نمیشم اگر منظورتون اینه که متنی که از دیتابیس میگیرید و میریزید داخل لیبل رو رنگش رو عوض کنید میتونید از این کد کمک بگیرید:


Sub highlightTextInString(text1 As String, SearchText As String , HighlightColor As Int) As RichString
	Dim RS As RichString
	RS.Initialize(text1)
	
	Dim index As Int = 0
	For i = 0 To text1.Length
		Dim startIndex As Int = text1.ToLowerCase.IndexOf2(SearchText.ToLowerCase , index)
		If startIndex > -1 Then
			Dim endIndex As Int = startIndex + SearchText.Length
			index = endIndex
			RS.BackColor(HighlightColor, startIndex, endIndex)
		Else
			Exit
		End If
	Next
	
	Return RS
End Sub

این کد در اصل برای این بوده که موقع سرچ یک قسمت مورد نظر رو رنگی کنیم ولی برای کار های دیگه هم قابلیت استفاده رو داره

شما یک نگاهی هم به تاپیک زیر بندازید 

اگر هم که منظورتون اینه که متن های داخل فیلد های دیتابیس رو رنگی کنید که فکر نکنم امکان پذیر باشه

توی این کد، کجاش متنو از دیتابیس گرفته؟!

مثلا:

for i=0 to cur.RowCount-1
	lbl.text=cur.getstring("txt")
next

این کجاست؟!

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

در 1 ساعت قبل، batman1 گفته است :

توی این کد، کجاش متنو از دیتابیس گرفته؟!

مثلا:


for i=0 to cur.RowCount-1
	lbl.text=cur.getstring("txt")
next

این کجاست؟!

سلام

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

شما متن رو که از دیتابیس گرفتید و تو لیبل نمایش دادین، اجازه دارین رو دیزاین لیبل کار کنید و قسمتی از اون رو(همونطور که تو سورس بابا هست)، رنگی کنید

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

در 3 ساعت قبل، Salar82 گفته است :

سلام

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

شما متن رو که از دیتابیس گرفتید و تو لیبل نمایش دادین، اجازه دارین رو دیزاین لیبل کار کنید و قسمتی از اون رو(همونطور که تو سورس بابا هست)، رنگی کنید

اینارو میدونم عزیزم

چه طوری باید رنگی کنم؟!

ببینید یا لیبل باید اینطوری مقدار بگیره

lbl.text=cur.getstring("txt")

یا اینطوری

Label1.Text = rs

دوتایی باهم نمیشه که

من میخوام اینا باهم اجرا بشن.

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

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

خب اینکه مشکلی نداره.

در 3 ساعت قبل، batman1 گفته است :

من میخوام اینا باهم اجرا بشن

متن دیتابیس رو بدین به rs، بعد rs رو بدین به لیبل.

کدش سادست:

Dim rs As RichString
rs.Initialize(cur1.GetString("txt"))
rs.Color2(Colors.Red, "{R}")

Label1.Text = rs

 

:53:

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

در 10 ساعت قبل، Salar82 گفته است :

خب اینکه مشکلی نداره.

متن دیتابیس رو بدین به rs، بعد rs رو بدین به لیبل.

کدش سادست:


Dim rs As RichString
rs.Initialize(cur1.GetString("txt"))
rs.Color2(Colors.Red, "{R}")

Label1.Text = rs

 

:53:

این کدهای منه

Dim rs As RichString
		rs.Initialize(cur_txt.GetString("txt"))
		rs.Initialize("{R}اَلسَّلامُ عَلَی الْحُسَیْنِ وَ عَلی عَلِیِّ بْنِ الْحُسَیْنِ وَ عَلی اَوْلادِ الْحُسَیْنِ وَ عَلی اَصْحابِ الْحُسَیْنِ{R}")
		rs.Color2(Colors.Red, "{R}")
		lbl.Text = rs

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

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

این مشکل اصلیه منه

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

خب شما دارین rs رو دوبار Initialize میکنین. 

در 2 دقیقه قبل، batman123 گفته است :

rs.Initialize("{R}اَلسَّلامُ عَلَی الْحُسَیْنِ وَ عَلی عَلِیِّ بْنِ الْحُسَیْنِ وَ عَلی اَوْلادِ الْحُسَیْنِ وَ عَلی اَصْحابِ الْحُسَیْنِ{R}")

این خط رو که پاکش کنید، متن داخل دیتابیس نمایش داده میشه.

 

در 6 دقیقه قبل، batman123 گفته است :

{R}اَلسَّلامُ عَلَی الْحُسَیْنِ وَ عَلی عَلِیِّ بْنِ الْحُسَیْنِ وَ عَلی اَوْلادِ الْحُسَیْنِ وَ عَلی اَصْحابِ الْحُسَیْنِ{R}

ابن متن داخل دیتابیس نیست؟

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

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

برادر شما باید متن رو بگیرید بعد با Replace متن جدید که دارای تغییرات رنگی هست رو جایگزین کنید!!

 

	lbl.Text = lbl.Text.Replace("متن","{BOL}{C}متن{C}{BOL}")
	Dim rs As RichString
	rs.Initialize(lbl.Text)
	rs.Color2(Colors.Red, "{C}")
	rs.Style2(rs.STYLE_BOLD,"{BOL}")
	lbl.Text = rs

اول متن لیبل رو میگیرید بعد میگید فلان چیز رو با فلان چیز جایگزین کن

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

بایگانی شده

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

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

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