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

رنگی کردن کلمه پیدا شده در سرچ


حمید حمید

سوال

سلام دوستان وقتتون بخیر :53:

من کد نویسی کردم وقتی داخل ادیت تکست سرچ میکنم متن لیبلی که کلمه داخلش هست رو میاره برام اما نشونش نمیده که کجای متن لیبل قرار داره 

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

Sub btn_Click
	
	
	ListView.Clear
	cur = sql1.ExecQuery("SELECT * FROM tbl_test "&" WHERE matn LIKE '%"&TxtSearch.Text& "%'")
	For i = 0 To cur.RowCount - 1
		cur.Position = i
		ListView.AddSingleLine2(cur.GetString("Onvan"),i)
	Next

	
	Dim a As Int
	a = cur.RowCount - 0
	If TxtSearch.Text="" Then
		ListView.Visible=False
		a=0
	End If
	If a > 0 Then
		ListView.Visible=True
		ToastMessageShow(a &" تا پیدا شد ",True)
	Else
		ListView.Visible=False
		ToastMessageShow(" چیزی پیدا نشد ",True)
	End If
End Sub

این کدی هست که برای جستوجو نوشتم عنوان رو داخل لیست ویو نشون میده و با کلیک کردن روی ایتم لیست ویو اون لیبل دلخواه رو نشون میده

 و کد پایینی هم کدهای رویداد آیتم کلیک لیست ویو هستش


Sub ListView_ItemClick (Position As Int, Value As Object)
	Select Value
		Case 0
			Activity.RemoveAllViews
			Activity.LoadLayout("Layout")
			Dim cur As Cursor
			cur = sql1.ExecQuery("SELECT * FROM tbl_test")
			cur.Position = 0
			ScrollView1.Panel.AddView(label1,0,0,100%x,300%y)
			label1.Text = cur.GetString("matn")
			
		Case 1
			Activity.LoadLayout("Layout")
			Dim cur As Cursor
			cur = sql1.ExecQuery("SELECT * FROM tbl_test")
			cur.Position = 1
			ScrollView1.Panel.AddView(label1,0,0,100%x,300%y)
			label1.Text = cur.GetString("matn")
			
	End Select
	
	Dim su As StringUtils
	label1.Height = su.MeasureMultilineTextHeight(label1,label1.Text)
	ScrollView1.Panel.Height = label1.Height + 15dip
End Sub

 

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

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

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

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

  • مثال: این {Y}متن{Y} جهت تست می باشد.

اینجا ما میخواهیم تا کلمه «متن» را رنگی کنیم بخاطر همین داخل دو تا {Y} قرار دادیم.

نکته: به جای Y میتوان از هر حرف و نشانه دیگری استفاده کرد.

برای رنگی کردن کلمه مدنظر:

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

Dim a As RichString

a.Initialize(Label1.Text)

a.Color2(Colors.White,"{Y}")

توضیح:

ما یک متغیر تعریف می کنیم تا کتابخونه رو تعریف کنیم!

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

خط آخر هم هم دو پارامتر ورودی داره که اولی میگه کلمه مدنظر چه رنگی باشه. و پارامتر دیگه هم میگه کلمه رو با چه نشانه ای. یا تگی مشخص کرده ای.

 

موفق باشید:53:

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

در 24 دقیقه قبل، امیرحسین قاسمی گفته است :

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

  • مثال: این {Y}متن{Y} جهت تست می باشد.

اینجا ما میخواهیم تا کلمه «متن» را رنگی کنیم بخاطر همین داخل دو تا {Y} قرار دادیم.

نکته: به جای Y میتوان از هر حرف و نشانه دیگری استفاده کرد.

برای رنگی کردن کلمه مدنظر:

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

Dim a As RichString

a.Initialize(Label1.Text)

a.Color2(Colors.White,"{Y}")

توضیح:

ما یک متغیر تعریف می کنیم تا کتابخونه رو تعریف کنیم!

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

خط آخر هم هم دو پارامتر ورودی داره که اولی میگه کلمه مدنظر چه رنگی باشه. و پارامتر دیگه هم میگه کلمه رو با چه نشانه ای. یا تگی مشخص کرده ای.

 

موفق باشید:53:

ممنون از توجهت، اینطوری رو میدونم که کلمه مورد نظر رو داخل دوتا {هر حرف انگلیسی} بذاریم با کتابخونه ریچ استرینگ تو دیتابیس میشه رنگیش کرد این یه کلمه ثابت هست.

«اما من میخوام هر کلمه ای سرچ شه،  اون کلمه سرچ شده رنگی شه نه یه کلمه مشخص شده داخل دیتابیس» برای این باید چطوری کد بنویسم اگر با کد بگین ممنون میشم

 

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

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

در 27 دقیقه قبل، حمید حمید گفته است :

ممنون از توجهت، اینطوری رو میدونم که کلمه مورد نظر رو داخل دوتا {هر حرف انگلیسی} بذاریم با کتابخونه ریچ استرینگ تو دیتابیس میشه رنگیش کرد این یه کلمه ثابت هست.

«اما من میخوام هر کلمه ای سرچ شه،  اون کلمه سرچ شده رنگی شه نه یه کلمه مشخص شده داخل دیتابیس» برای این باید چطوری کد بنویسم اگر با کد بگین ممنون میشم

 

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

برای اینکه این کلمه سرچ شده رو رنگی کنیم باید اینگونه عمل کنیم:

	Dim searched As String
	searched=edittext1.text

ابتدا یک متغیر از نوع string تعریف می کنیم و توی اون کلمه ای که کاربر توی ادیت تکست جهت جستجو وارد کرده، می ریزیم.

    Try
	Dim searched2 As String="{Y}"&searched&"{Y}"
		label1.text=label1.text.Replace(searched,searched2)
	Catch
	End Try

توضیح کدهای بالا:

یک متغیر به نام searched2 تعریف می کنیم تا به کلمه ای که کاربر وارد کرده تگ هامون رو اضافه کنیم و توش ذخیره کنیم.

بعد کلمه ای که کاربر جستجو کرده رو تگ دار می کنیم و تو label نمایش میدهیم.

Dim a As RichString

a.Initialize(Label1.Text)

a.Color2(Colors.White,"{Y}")

الان کتابخونه richstring رو تیک می زنیم و کلمه رو رنگی می کنیم.

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

 

:53:روز خوبی داشته باشید:53:

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

در 26 دقیقه قبل، امیرحسین قاسمی گفته است :

برای اینکه این کلمه سرچ شده رو رنگی کنیم باید اینگونه عمل کنیم:


	Dim searched As String
	searched=edittext1.text

ابتدا یک متغیر از نوع string تعریف می کنیم و توی اون کلمه ای که کاربر توی ادیت تکست جهت جستجو وارد کرده، می ریزیم.


    Try
	Dim searched2 As String="{Y}"&searched&"{Y}"
		label1.text=label1.text.Replace(searched,searched2)
	Catch
	End Try

توضیح کدهای بالا:

یک متغیر به نام searched2 تعریف می کنیم تا به کلمه ای که کاربر وارد کرده تگ هامون رو اضافه کنیم و توش ذخیره کنیم.

بعد کلمه ای که کاربر جستجو کرده رو تگ دار می کنیم و تو label نمایش میدهیم.


Dim a As RichString

a.Initialize(Label1.Text)

a.Color2(Colors.White,"{Y}")

الان کتابخونه richstring رو تیک می زنیم و کلمه رو رنگی می کنیم.

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

 

:53:روز خوبی داشته باشید:53:

این کدهارو نوشتم وقتی سرچ میکنم فقط متن مورد نظر بین دو تگ قرار میگیره رنگی هم نشدش همون رنگ مشکی خودش بود میمونه

ببخشید کلا برنامه هایی که نوشته میشه که قابلیت سرچ دارن و وقتی یه کلمه رو سرچ میکنیم رنگی میشن داخل متن لیبل چطور کدی استفاده میکنن از کتابخونه خاصی استفاده میشه؟

میخوام مثل اونا باشه هم رنگی یا هایلایت شه هم تگ ها مشخص نباشن اصراری ندارم حتما بدون کتابخونه باشه ، هر روشی ک بهترین روش هست رو میگین لطفا همون کار رو کنم:53:

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

در 4 دقیقه قبل، حمید حمید گفته است :

این کدهارو نوشتم وقتی سرچ میکنم فقط متن مورد نظر بین دو تگ قرار میگیره رنگی هم نشدش همون رنگ مشکی خودش بود میمونه

ببخشید کلا برنامه هایی که نوشته میشه که قابلیت سرچ دارن و وقتی یه کلمه رو سرچ میکنیم رنگی میشن داخل متن لیبل چطور کدی استفاده میکنن از کتابخونه خاصی استفاده میشه؟

میخوام مثل اونا باشه هم رنگی یا هایلایت شه هم تگ ها مشخص نباشن اصراری ندارم حتما بدون کتابخونه باشه ، هر روشی ک بهترین روش هست رو میگین لطفا همون کار رو کنم:53:

دوست عزیز این خط از کد رو بعد از کدهای دیگه قرار دادین دیگه؟

a.Initialize(Label1.Text)

از اونجایی که توی اندروید کدها خط به خط خونده و اجرا میشن، باید این خط از کد رو بعد از اینکه متن label بروز شد قرار بدیم.(یعنی اینکه کلمه مدنظر توی لیبل تگ گرفت.)

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

در 3 دقیقه قبل، امیرحسین قاسمی گفته است :

دوست عزیز این خط از کد رو بعد از کدهای دیگه قرار دادین دیگه؟


a.Initialize(Label1.Text)

از اونجایی که توی اندروید کدها خط به خط خونده و اجرا میشن، باید این خط از کد رو بعد از اینکه متن label بروز شد قرار بدیم.(یعنی اینکه کلمه مدنظر توی لیبل تگ گرفت.)

این خط کد رو اضافه کردم اخرش درست شد تگ هم نشون نمیده :yahoo:

label1.Text = a  

ممنون از کمکتون :heart:بنظرتون برای جستوجو در متن این کاری که میکنم بهترین کار هست یا راه بهتری هم هست؟

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

من همین دستورات رو توی b4a نوشتم بعد اینجا کپی کردم اگه برای شما کاربردی نداره به بزرگی تون ببخشید. دانشم بیشتر از این اجازه راهنمایی نمیده.

توی انجمن سرچ کردم یکی از دوستان انجمن آموزش داده، ببینید بد نیست:

 

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

در 1 دقیقه قبل، امیرحسین قاسمی گفته است :

من همین دستورات رو توی b4a نوشتم بعد اینجا کپی کردم اگه برای شما کاربردی نداره به بزرگی تون ببخشید. دانشم بیشتر از این اجازه راهنمایی نمیده.

توی انجمن سرچ کردم یکی از دوستان انجمن آموزش داده، ببینید بد نیست:

 

ممنون درست شدش تو پیام قبلیم نوشتم:heart:

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

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

ممنون درست شدش تو پیام قبلیم نوشتم:heart:

بله توی رفرش دیدم،

هر کدوم که راحت تر بودین پیاده سازی کنید. راهنمایی که خدمتتون نوشتم اختراع خودم بود:hi:

ولی فکر میکنم تاپیک آموزشی آقای شجاعی راه بهتری باشه:53:

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

در 13 دقیقه قبل، امیرحسین قاسمی گفته است :

بله توی رفرش دیدم،

هر کدوم که راحت تر بودین پیاده سازی کنید. راهنمایی که خدمتتون نوشتم اختراع خودم بود:hi:

ولی فکر میکنم تاپیک آموزشی آقای شجاعی راه بهتری باشه:53:

این سورس برای هایلایت کردن عااالییی بود ممنون از آقای شجاعی :53: ببخشید برای رنگی کردن چطوری باید این سورس رو تغییر داد؟

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

بایگانی شده

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

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

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