PDA

View Full Version : حل مشکل نیمه کاره فارسی در دلفی 7



bootshow
سه شنبه 03 شهریور 1388, 22:07 عصر
یک روشی از خیلی وقت پیش پیدا کرده بودم که برنامه فارسی ما در هر ویندوزی فارسیو درست نشون بده.حتی اگر تنظیمات فارسی درست نباشه ، ولی فقط یک مشکل داره اونم راست به چپ کپشن فرم ، عنوان گرید و منو اصلی برنامه بهم میخوره.
خوب اومدم اینجا اینو مطرح کردم تا ببینم اصلا این کار بدرد میخوره ، میشه راست به چپ نوشته ها را یه جور دیگری درست کرد؟
از نظر سرعت هیچ مشکلی نداره.اینو امتحان کردم.

طرز کارش هم اینجوری که مثلا با تنظیمات صحیح فارسی ، یک لیبل (فونت Tahoma)همراه با عنوان فارسی روی فرم بزارید و برنامه را اجرا کنید.
اگر تنظیمات فارسی را بهم بزنید .مثلا standard and formats را عوض کنید فونت فارسی ما به علامت سوال تبدیل میشه.
ولی اگر در رویداد ایجاد یا نمایش فرم دستور زیر را بنویسیم این مشکل حل میشه
lable1.caption:='متن فارسی |پژگچ';

نکته:دقت کنید که اینکارو فعلا روی برنامه اصلی خودتون انجام ندهید ، حتی اگر برنامتونو ذخیره نکنید نوشته های فارسی در فایل dfm به علامت سوال تبدیل میشه
"با یک برنامه ای که به برنامه نوشته شده خاصیت چند برنامگی میده میشه تمام رشته ها را جدا کرد.این بمونه برای بعد"

میدونم متوجه شدید ولی برای بهتر متوجه شدن برنامه زیر را با تنظیمات دستکاری شده فارسی اجرا کنید

bootshow
یک شنبه 08 شهریور 1388, 13:18 عصر
در رویداد ایجاد فرم ، تمام عنوان و نوشته های کنترلها ، در تمام فرمهای استفاده شده در برنامه را دوباره مقدار دهی کنید.
و برای نمایش راست به چپ ، باید در یونیت SysUtils دلفی ، قبل از تابع GetFormatSettings ، دستور SetThreadLocale(1065) را بنویسیم تا نوشته های فارسی بصورت راست به چپ نمایش داده شوند.
شاید اینکارها به نظر سخت باشد ولی تمام این کارها حتی برای یک برنامه بسیار بزرگ هم ، بیشتر از نیم ساعت زمان نمیبرد.
میتوان از برنامه هایی که به برنامه نوشته شده ما خاصیت MultiLanguage را میدهند(مانند Localizer pack version 4.0) ، استفاده کرد و تمام نوشته های موجود در سورس برنامه را استخراج کنیم و در برنامه خود قرار دهیم.
اینکار از سرعت اجرای برنامه ، کم نمیکند.