ورود

View Full Version : سوال: آيا کامپوننتی هست که ويرايشگر باشه مثل Memo ولی مثل ListBox چیزی مثل OnDrawItem داشته باشه؟



mbshareat
چهارشنبه 01 بهمن 1404, 17:59 عصر
سلام
حالتون خوبه؟
من از لیست باکس برای نمایش متن استفاده می کنم و روی رنگ پردازی متن کار کردم و حتی به جای بعضی کارکترها شکل رسم کردم.
اما مشکل اینه که لیست باکس ویرایشگر نیست و در سطرهای طولانی، سطر نمیشکنه.
برنامه من در نسخه غیر یونیکد نوشته شده بود و عملا شبیه ویرایشگر نوشته بودمش. اما الان میخوام در دلفی یونیکد از صفر شروع کنم.
یه برنامه نویس در مورد WebBrowser بهم گفت. به نظر میرسه اصلا مکان نما نداره و کار کردن باهاش سخته و تنها مزیتش بر لیست باکس شکستن خودکار سطرهای طولانی( چیزی مثل WordWrap نوت پد !) هست.
تا اینجا قسمتی از کار رو انجام داده ام.
قبلا فکر می کردم RichEdit بهتره. ولی مشکلش اینه که با ترکیب لاتین و فارسی خوب کار نمی کنه و با حرکت مکان نما، خودبخود، زبان صفحه کلید رو تغییر میده(بستگی داه مکان نما کنار لاتین باشه یا فارسی). البته ظاهرا با تبدیل کارکترهای یونیکد بهتر کار می کنه.
هنوز نمی دونم ویندوز چطور میتونه انواع نگارش یک حرف رو در قلمهای متفاوت تشخیص بده و حرف رو در اون متن، به یک کارکتر ساده تبدیل کنه ولی در Memo گاهی موفق نمیشه.اما تغییر خودکار زبان صفحه کلید نداره.
فعلا رنگ قسمتهایی مثل عنوان و شعر و غیره که در برنامه قبلی داشتنم رو بیخیال شدم.
در ویندوز ممکنه نشه از ظاهر پرانتز فهمید جهتش کدوم طرفی هست و یا مکان نما قبل از کارکتر هست یا بعدش.
حرکت مکان نما و راست چین چپ چین شدن در لاتین رو هم با استفاده از قلم اختصاصی محل کارمون حل کردم.در مورد بررسی کلیدهای کپی و الصاق و Unde,Redo هم کد هنندل کردن پیام خودم رو دارم.

سوالم اینه که آیا میشه مثلا بین متن و پاورقیهای یک صفحه یک خط ترسیم کنم؟ یا مثلا اگر عبارت خاصی در سطر بود، سطر رو مثلا قرمز کنم؟
آیا میشه چیزی مثل OndrawItem برای Memo داشت؟ یا کامپوننت ویرایشگر مشابهی وجود داره که چنین رویدادی داشته باشه؟