PDA

View Full Version : سوال: پررنگ کردن یک کاراکتر یا چند کاراکتر پشت سر هم در یک لغت



قله بلند
دوشنبه 12 خرداد 1393, 01:00 صبح
سلام
فرض کنید که کاربر، ea رو در بانک جستجو کرده که یکی از خروجی هاش teaher است. چه طوری می تونم ea رو در teacher، پررنگ کنم و به صورت teacher به کاربر نشون بدم؟

RESMAILY
دوشنبه 12 خرداد 1393, 08:22 صبح
به نام خدا
با سلام. کار دشواری نیست اما زمان بر است(برای کامپیوتر البته)
توابعی برای این کار وجود دارد. مثل instr وغیره. یک راه حل ساده این است که برای هر لغت خروجی یک حلقه براساس تعداد کاراکتر بنویسیم(با استفاده از تابع len) وسپس با استفاده از تابع mid کاراکتر های مورد نظر مانرا پیدا کنیم(حتی بصورت دسته ای. دوتا دوتا یا هرچه) وبعد در بازسازی مجدد لغتٰ، این بخش را جداگانه درنظر بگیریم.
این برای پیدا کردن حروف که لابد خودتان هم می دانستید. می ماند bold کردن. طبعا حالا نمی شود درون یک آبجکت معمولی برای کاراکترها مشخصات مختلفی درنظر گرفت(مگر آنکه از آکتیواکس rtf استفاده شود)
پس باید که برای هر بخش از لغت، یک لیبل (مثلا) درنظر گرفت و بسته به تعداد کاراکتر های موردنظرٰ سایز آن (یعنی در واقع طول آن لیبل) را کم و زیاد کرد.
حالا بپرس اصلا خودت فهمیدی چی نوشتی که ماهم بفهمیم؟! که جوابش معلوم است(؟) باید یک نمونه بدهم و از زیاده گویی دست بردارم! :متفکر:
علیهذا یک برشی از برنامه مورد نظر خودتان در تاپیک بگذارید. تا ببینیم اصل مطلب چیست و تا کجا می شود برایش راه حل پیدا کرد.

قله بلند
دوشنبه 12 خرداد 1393, 11:16 صبح
سلام
ممنون از توجهتون
من جستجویی کردم و به این دو لینک رسیدم.
من یک textbox دارم که کاربر مورد خودش رو برای جستجو وارد می کنه و یک مشت برچسب که خروجی ها رو نشون می دهند. با توجه به این دو لینک انگار نمی شه از برچسب استفاده کرد و باید اونها رو به textbox تغییر داد و حاشیه هاش رو از بین برد.

اما یک مشکلی وجود داره و اون اینکه وقتی من تنها Textbax برنامه رو که کاربر مورد جستجوی خودش رو درو اون قرار می ده از plain text به rich text تغییر می دم دیگه جستجو رو انجام نمی ده و پیغام خطا صادر می کنه.

http://www.vbforums.com/showthread.php?286226-bold-in-a-label-%28resolved%29&p=1669027&viewfull=1#post1669027
http://allenbrowne.com/AppSearchHighlight.html (http://www.vbforums.com/showthread.php?286226-bold-in-a-label-%28resolved%29&p=1669027&viewfull=1#post1669027http://allenbrowne.com/AppSearchHighlight.html)

قله بلند
دوشنبه 12 خرداد 1393, 16:24 عصر
جوابش رو پیدا کردم
در رویداد click دکمه جستجو، چنین چیزی رو اضافه می کنم





x = RS.Fields("Main_EW")
y = Me.Text0
z = "<font color=#ee00ee>" + y + "</font>"
Me.Text111 = Replace(x, y, z)


البته باید بگم که خروجی دیگه نمی تونه برچسب باشه بلکه باید textbox باشه و خاصیت Text Formt اون هم به Rich Text تغییر کنه وگرنه تغییر رنگ رو نشون نمی ده.

am_barnamehnevis
چهارشنبه 14 خرداد 1393, 15:29 عصر
سلام جناب قله بلند
از قدیم گفته اند کار را که کرد ؟ آنکه تمام کرد :تشویق:
اگه نمونه هم بزارید خیلی خوب میشه.
باتشکر

قله بلند
جمعه 16 خرداد 1393, 14:47 عصر
سلام جناب قله بلند
از قدیم گفته اند کار را که کرد ؟ آنکه تمام کرد :تشویق:
اگه نمونه هم بزارید خیلی خوب میشه.
باتشکر

سلام دوست عزیز
یک نمونه رو پیوست کردم

soroush_k12
جمعه 30 خرداد 1393, 15:10 عصر
سلام دوست عزیز
یک نمونه رو پیوست کردم
سلام جناب قله بلند
من از2003 استفاده میکنم.ایادر 2003 هم می توان این کارو انجام داد (چون من چیزی به عنوان
Rich Text تا حالا تو 2003 ندیدم)

alirezabahrami
جمعه 30 خرداد 1393, 16:34 عصر
سلام جناب قله بلند
من از2003 استفاده میکنم.ایادر 2003 هم می توان این کارو انجام داد (چون من چیزی به عنوان
Rich Text تا حالا تو 2003 ندیدم)
سلام سروش !
درسته ، در اکسس 2003 کنترل Rich Text وجود ندارد و باید از کامپوننت آن استفاده نمود .
یک پیشنهاد : هرچه سریعتر اکسس 2003 را کنار بگذار و با ورژنهای بالاتر کارکن ! درسته محیط ساده و راحتی برای کارکردن دارد ولی نسبت به ورژن های بالاتر دارای محدودیت هایی است .
یا علی

soroush_k12
شنبه 31 خرداد 1393, 14:30 عصر
سلام سروش !
درسته ، در اکسس 2003 کنترل Rich Text وجود ندارد و باید از کامپوننت آن استفاده نمود .
یک پیشنهاد : هرچه سریعتر اکسس 2003 را کنار بگذار و با ورژنهای بالاتر کارکن ! درسته محیط ساده و راحتی برای کارکردن دارد ولی نسبت به ورژن های بالاتر دارای محدودیت هایی است .
یا علی
سلام جناب بهرامی عزیز
خیلی مقاومت کردم تا حالا . ولی ظاهرا چاره ی جز تسلیم شدن نیست.ولی حیف بود 2003 محیطش عالی بود.شما بین ورژن های بالاتر کدوم رو پیشنهاد میدید؟؟
باز هم ممنون
راستی اون کامپوننت رو از کجا میشه تهیه کرد؟