نمایش نتایج 1 تا 31 از 31

نام تاپیک: فارسی سازی کامپوننت cxGrid از سری کامپوننت های شرکت DevExpress

Threaded View

پست قبلی پست قبلی   پست بعدی پست بعدی
  1. #1
    کاربر تازه وارد آواتار HosseinSaberi
    تاریخ عضویت
    بهمن 1385
    محل زندگی
    قم
    پست
    45

    Lightbulb فارسی سازی کامپوننت cxGrid از سری کامپوننت های شرکت DevExpress

    با عرض سلام خدمت دوستان برنامه نویس
    همونطور که همه برنامه نویس های عزیز دلفی میدونند یکی از قویترین شرکتهای کامپوننت نویسی DevExpress هست اما مشکلی که وجود داره اینه که این کامپوننت ها زبانهای راست به چپ رو پشتیبانی نمیکنه. این مشکل برای کامپوننتهایی مثل Edit و ... با راست چین کردن در زمان طراحی و تنظیم BidiMode در زمان اجرا حل میشه.
    اما برای کامپوننتهایی مثل جدول CXGrid این مشکل اینطوری حل نمیشه و از طرف دیگه من اینجا رو که خوندم فهمیدم امیدی به شرکت سازنده، برای فارسی سازی کامپوننتها، نیست. توی اینترنت هم که هرچی بیشتر گشتم کمتر یافتم (راه حل این بابا رو هم چک کردم و جواب نگرفتم). بنابراین چاره ای ندیدم جز اینکه خودم دست بکار بشم و مشکلم رو با این کامپوننت CxGrid حل کنم.
    ویژگی های کامپوننت CxGrid که من استفاده میکنم به شرح زیره:
    1- ستونها از چپ به راست چیده میشه یعنی اولین ستون میره سمت چپ.
    این مشکل رو با تنظیم خاصیت ColumnAotuWidth به مقدار True تقریباً حل کردم. به عبارت دیگه فضای خالی برای جدول نمیمونه که مشخص بشه چینش ستونها از چپ به راسته.
    2- متون نوشته شده در سلول های متنی در سمت چپ تراز میشوند.
    این مشکل هم اینطوری حل میشه که ستون مربوطه رو ابتدا انتخاب میکنم و بعد خاصیت Properties اون رو به TextEdit تغییر میدم و بعد از زیر مجموعه همون خاصیت Properties خاصیت Alignment و بعد خاصیت Horz رو به taRightJustify تغییر میدم.
    با این کار فقط متون از سمت چپ ستون به سمت راست اون منتقل میشه. برای متون انگلیسی هم باید همین روند رو برعکس کرد (taLeftJustify)
    3- در مرحله دوم فقط متن (جمله) به سمت راست اومد اما هنوز جملات ما در سطح کلمات دچار مشکل هستند. میتونیم چهار حالت زیر رو برای یک جمله که داخل سلولی هست متصور باشیم:
    الف - جمله کاملاً فارسی باشه و بدون هیچ کلمه انگلیسی.
    ب- جمله کاملاً انگلیسی باشه و بدون هیچ کلمه فارسی.
    ج- جمله انگلیسی باشه که چند کلمه فارسی هم داره.
    د- جمله فارسی باشه که چند کلمه انگلیسی هم داره.
    با انجام دو مرحله اول پس از اجرای جدول با حالتهای الف و ب مشکلی نداشتم و حالت د هم مربوط به کار من نبود (فکر نمیکنم کلاً خیلی کاربردی باشه) فقط میمونه حالت ج. در حالت ج هم در زمان اجرا با انتخاب سلول مشکل حل میشه و نمایش جمله درست میشه. و با توجه به اینکه خود حال ج هم زیاد مورد استفاده نیست این مورد هم زیاد اذیت نمیکنه و میشه بیخیالش شد.
    4- اما با انجام همه مراحل بالا پس از اجرا یک مشکل اساسی وجود داره و اونم اینه که با زدن کلید Tab و یا اینتر بجای حرکت از سلولهای سمت راست به چپ (مطابق فارسی) جهت حرکت برعکسه. یعنی وقتی Tab رو میزنید از سلول سمت چپ میاید سمت راست (یعنی مطابق انگلیسی).
    من کمی (چند ساعت) سورس این کامپوننت رو زیر و رو کردم تا تونستم این مشکل رو حل کنم.
    سورس رو کمی تغییر دادم و بعد از امتحان و حل مشکل اولاً گفتم شاید بدرد سایر دوستان هم بخوره و ثانیاً گفتم شاید از من وارد تر هم توی تالار باشه و از استارت من استفاده کنه و بتونه مشکل سوم رو هم کاملاً حل کنه که هم بدرد من بخوره هم بدرد سایر دوستان.
    فایلی که من ضمیمه کردم رو بجای فایلی با همین نام در سورس کامپوننت های DexExpress ذخیره کنید.
    در ضمن برای دوستانی که قصد ادامه کار رو دارند من قسمتهایی از سورس رو که تغییر دادم با علامت Sab// علامت گذاشتم و اصل ردیف رو هم جلوی همون نوشتم که بدونید قضیه چی بوده.
    موفق باشید

    منبع تالانت
    فایل های ضمیمه فایل های ضمیمه
    آخرین ویرایش به وسیله HosseinSaberi : پنج شنبه 28 فروردین 1393 در 16:19 عصر دلیل: افزودن فایل پیوست

تاپیک های مشابه

  1. فارسی سازی calendar-planner از مجموعه کامپوننت TMS
    نوشته شده توسط ATULICUS در بخش کامپوننت های سایر شرکت ها، و توسعه کامپوننت
    پاسخ: 7
    آخرین پست: یک شنبه 14 اردیبهشت 1393, 20:57 عصر
  2. سوال: فارسی سازی کامپوننت Dev Express
    نوشته شده توسط sadaf_ در بخش C#‎‎
    پاسخ: 5
    آخرین پست: دوشنبه 20 آبان 1392, 19:29 عصر
  3. سوال: مشکل در استفاده از کامپوننت AdvSmoothPopup از سری کامپوننت های TMS ؟؟؟
    نوشته شده توسط nilidelphi در بخش کامپوننت های سایر شرکت ها، و توسعه کامپوننت
    پاسخ: 3
    آخرین پست: چهارشنبه 10 آذر 1389, 09:55 صبح

قوانین ایجاد تاپیک در تالار

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