PDA

View Full Version : ترفند فارسی کردن در دلفی برای هر ویندوزی



mamizadeh
چهارشنبه 16 آذر 1384, 20:10 عصر
با سلام
من برنامه ای در xp sp2 نوشته ام که به صورت فارسی است و کاملا دقیق کار می کند و بدون اشتباه ولی وقتی همین برنامه را در سیستم دیگری که sp1 است اجرا کردم فونت های آن را به صورت علامت سوال نشان می دهد.
و حالا گیر آن هستم که چطوری این برنامه را به مشتری تحویل بدهم.
لطفا راهمایی کنید.
اگر ترفندی را یاد بدهید که در تمام ویندو.ز ها فارسی بدون ایراد کار کند ممنون می شوم.
از آن جا که شنیده ام برای این کار یک َActivx unicode هستش که این کامپوننت باعث می شود فارسی در همه جا کار کند.
اگر این کامپوننت را دارید و یا مشابه آن را خریدار آن نیز هستم. :گریه:
با تشکر

اَرژنگ
پنج شنبه 17 آذر 1384, 03:30 صبح
panmaقبل از ایکنه شروع به خردیدن کمپبننتی کنید، ممکنه به این نکات بررسی کنید:
فونتهایی کن در برنامه استفاده شده، در کامپیوتر کاربر نصب هست؟
قبلاً یکجایی(در همین سایت) متنی بود در مورد اشکال با فونتهایه فارسی و xp sp2 ، اگر یکی دیگر از این موضوع اطلاعی دارد .
به این پست یک نگاه بندزید، اگر مشکلتان را حل کرد، توضیح بدید مشکل چی بود و راه حلش چی بود، شاید در آیندد به کار دیگران هم کند:
http://www.barnamenevis.org/forum/showthread.php?t=9581&highlight=xp+sp2

Hamid_PaK
پنج شنبه 17 آذر 1384, 05:49 صبح
یک راهی هست که من تست کردم و جواب داده ولی کمی مشکل هست ...
شما تکست های تمامی شی های خود را با کد نویسی جایگزین کنید ...
یعنی اگر یک Label دارید کپشن آن را در کریت فرم به نوشته مورد نظر تون تغییر دهید .... امیدوارم جواب بگیرید . (بجز ویندوز 9x در تمامی نسخه های ویندوز بدرستی کار می کند )

یا حق !!!

mzjahromi
پنج شنبه 17 آذر 1384, 08:23 صبح
ببینید من برنامه هام فارسی هستش ولی با همه نسخه های ویندوز XP هم کار میکنه.
از ترفند خاصی هم استفاده نکردم.
اینطور که شما گفته اید : "فونت های آن را به صورت علامت سوال نشان می دهد."
تا اونجائی که تجربه من بهم میگه، فارسی ویندوزتون تنظیم نیست.
برای این کار حتما باید 3 مورد زیر تنظیم باشه والا فونتها درست کار نمیکنه
از منوی ControlPanel>Regional And Language Options
1-در قسمت Languages دو قسمت مربوطه تیک خورده باشند
2-در قسمت Regional Options فارسی و ایران انتخاب شده باشند
3-در قسمت Advanced فارسی انتخاب شده باشد
توجه: همیشه مورد 1 باید اول انجام شود

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

mohsenna30ri
شنبه 13 آبان 1385, 09:43 صبح
ببین این راه حل بدردت می خوره فکر کنم بد نباشد :
http://barnamenevis.org/forum/showthread.php?t=55431

soroush_vs
شنبه 13 آبان 1385, 11:36 صبح
منم هیچ مشکلی ندارم
یا مشکل از فونت ناشی میشود
یا از نصب فارسی در ویندوز هست که ممکنه فارسی به طور کامل نصب نشده باشه

dkhatibi
شنبه 13 آبان 1385, 13:19 عصر
3-در قسمت Advanced فارسی انتخاب شده باشد
توجه: همیشه مورد 1 باید اول انجام شود


به نظر می رسه خیلی مواقع تنظیم 3 نیز لازم است.. اما وقتی من 3 را تنظیم می کنم بعضی برنامه های فارسی دیگر مانند Dictionary فونت اون به هم می ریزه!

Bahram0110
یک شنبه 14 آبان 1385, 08:36 صبح
راه اول: اگر فقط برای ویندوز XP می خوای که می تونی از همون فونت Tahoma یا دیگر فونت های فارسی که با خود ویندوز نصب میشن استفاده کنید.

راه دوم: می تونی از فارسی نویس ها استفاده کنی. مثلا از فارسی نویس شتاب، البرز، مریم ، پارسا یا . . . . بعد در سیستم کاربر فونتی که در فارسی نویس از اون استفاده کردی رو نصب کنی! به احتمال زیاد این هم جواب بده.

hr110
یک شنبه 14 آبان 1385, 11:20 صبح
راه سوم: استفاده از کامپوننتهای فارسی ایران سیستم، سایه و ... میباشد.

ghabil
یک شنبه 14 آبان 1385, 15:26 عصر
ببینید من برنامه هام فارسی هستش ولی با همه نسخه های ویندوز XP هم کار میکنه.
از ترفند خاصی هم استفاده نکردم.
اینطور که شما گفته اید : "فونت های آن را به صورت علامت سوال نشان می دهد."
تا اونجائی که تجربه من بهم میگه، فارسی ویندوزتون تنظیم نیست.
برای این کار حتما باید 3 مورد زیر تنظیم باشه والا فونتها درست کار نمیکنه
از منوی ControlPanel>Regional And Language Options
1-در قسمت Languages دو قسمت مربوطه تیک خورده باشند

اگر اشتباه نکنم و درست یادم بیاد دومی برای زبانهای آسیای شرقیه که از بالا به پایین مینویسند و الفبای خرچنگ فورباغه دارند و نیازی به نصبش نیست.


2-در قسمت Regional Options فارسی و ایران انتخاب شده باشند
3-در قسمت Advanced فارسی انتخاب شده باشد
توجه: همیشه مورد 1 باید اول انجام شود





به نظر می رسه خیلی مواقع تنظیم 3 نیز لازم است.. اما وقتی من 3 را تنظیم می کنم بعضی برنامه های فارسی دیگر مانند Dictionary فونت اون به هم می ریزه!

به قول شما تنظیم 3 برای تعیین استفاده از کدپیج درست برای محیطهای غیر یونیکد هستش و طبیعتا باید فارسی باشه . اما چون بعضی از توابع به صورت پیش فرض (و حتی خود کامپایلر دلفی) از Locale سیستم برای تبدیل کدپیج استفاده میکنند درصورتیکه برنامه نویس تنبلی کرده باشه و خودش تبدیلها رو کنترل نکرده باشه (گاهی اوقات در نرم افزارهای بین المللی به عمد این کار انجام نمیشه) این مشکلی که برای شما پیش اومده ، اتفاق میفته...



راه دوم: می تونی از فارسی نویس ها استفاده کنی. مثلا از فارسی نویس شتاب، البرز، مریم ، پارسا یا . . . . بعد در سیستم کاربر فونتی که در فارسی نویس از اون استفاده کردی رو نصب کنی! به احتمال زیاد این هم جواب بده.

به نظر من بسیار پیشنهاد بدیه ، (وقتی که از ویندوز 2000 و به بالا استفاده میشه) و به این خوبی از یونیکد و کدچپشتیبانی میشه و فقط با در نظر داشتن 2 -3 تا نکته میشه به راحتی و بدون دردسر و نیتیو سیستم عامل فارسی کار کرد چرا بی دلیل سیستم رو به یک Add On اضافه که اکثرا هم باگ دارند و سرعت سیستم عامل رو هم کم میکنند محتاج کنیم ؟



راه سوم: استفاده از کامپوننتهای فارسی ایران سیستم، سایه و ... میباشد.

این از اون هم راه حل بدتریه ، چون حداقل راه بالا دیتا رو بصورت یک دیتای استاندارد که سیستم عاملها میشناسند ذخیره میکنه که خیلی مشکلاتی مثل مشکل فونت رو کم میکنه ، اما این دیگه خیلی دردسر اضافه درست میکنه !

کلا منطقی ترین راه به نظر من و استانداردترین راه به نظر همه صاحب نظرها همون استفاده از استاندارد سیستم عامل هست که خیلی راحت با همون 3 مرحله ای که Mzjahromi نوشته قابل دسترسیه.

soroush_vs
یک شنبه 14 آبان 1385, 17:39 عصر
آیا این سه مرحله رو میتوان با کد نویسی و انتقال فایل انجام داد؟
مطمئنا جواب آری است.
اما چه فایل هایی؟وبا چه کد نویسی؟
آیا رجیستری هم در این میان دستخوش تغییر میشود؟

ghabil
یک شنبه 14 آبان 1385, 21:01 عصر
تا جایی که یادم می آد هرکدومشون با یک API کال ساده انجام میشدند ، تقریبا کار کم دردسری بود با وجود اینکه وسط کار باید CD هم میگرفت بود .
الان دقیقا یادم نیست از روی MSDN پیدا کرده بودم ، اگر یکمی بگردی تو MSDN فکر میکنم راحت پیدا کنی ، فکر میکنم تابع اصلیش که دنبالش گشتم LoadKeyboardLayout بود.