ورود

View Full Version : مشکل در مورد ساخت برنامه با رابط فارسی



yaser_xerxes
چهارشنبه 02 آبان 1386, 15:06 عصر
امیدوارم که این موضوع تکراری نبوده باشه.

من مشکلی دارم در مورد رابط گرافیکی برنامه ای که نوشتم، من label ها رو فارسی نوشتم و روی سیستم خودم امتحان کردم (Windows XP MRT) و هیچ مشکلی نداشت، اما بعد از تعویض سیستم و بر روی ویندوز جدید (Windows XP 2006) که کد پیج اون عربیه (1256) میبینم که همه label ها بصورت ؟؟؟؟ نمایش داده میشن!!! در ضمن وقتی کد و فرم برنامه رو توی ویندوز جدید با دلفی باز کردم دیدم که نمیتونم در قسمت properties فارسی بنویسم درحالیکه توی VB میشه فارسی نوشت. همچنین در ویندوز قبلیم میتونستم تو دلفی فارسی بنویسم. درضمن با دلفی 7 کار میکنم.
لطفا منو راهنمایی بکنید تا رابط این برنامه تو همه ویندوزها و با هر کدپیجی فارسی نشون داده بشه.
ممنون

nasr
چهارشنبه 02 آبان 1386, 15:48 عصر
سلام

اگه یه سرچ بکنی مطلب زیاد هست ولی نتیجه کلی از همه اونها اینه که باید برنامه را چند زبانه بنویسید.یا از کامپوننتهایی مثل SiComp استفاده کنید

rasool_brn
چهارشنبه 02 آبان 1386, 16:33 عصر
احتمالا از قلمی استفاده کردی که تو ویندوز جدید وجود نداره.

yaser_xerxes
چهارشنبه 02 آبان 1386, 17:46 عصر
ممنون، ولی اگه راه حلی وجود داره که من چند زبانه نکنم و فقط همون فارسی باشه خیلی بهتره. درضمن من از فونتهای استاندارد خود ویندوز مثل tahoma , arial استفاده کرده بودم.

ghabil
چهارشنبه 02 آبان 1386, 18:40 عصر
اگر جستجو میکردی راحت پیدا میکردی: توی Regional Settings>>Advanced>>non-Unicode Languagse رو بزار روی فارسی. کلا جستجو کن کاملا بررسی شده.

farhad110
چهارشنبه 02 آبان 1386, 23:38 عصر
ممنون، ولی اگه راه حلی وجود داره که من چند زبانه نکنم و فقط همون فارسی باشه خیلی بهتره. درضمن من از فونتهای استاندارد خود ویندوز مثل tahoma , arial استفاده کرده بودم

سلام. شما میتونید از کامپوننتهای TntUnicode استفاده کنید که کاملا مستقل از code page عمل میکنه.
اگر مایل به استفاده بودید و با جستجو در سایت لینک دانلود پیدا نکردید بگین تا آپلود کنم
پیروز باشید

sardar_ahmadi
پنج شنبه 03 آبان 1386, 08:51 صبح
من با ghabil موافقم اگر در آن قسمت موفق نشدی این فونت را اجرا و نصب کن بعد در قسمت فونتها اضافه کن شاید مشکلت حل شد.

yaser_xerxes
چهارشنبه 09 آبان 1386, 17:56 عصر
سلام. شما میتونید از کامپوننتهای TntUnicode استفاده کنید که کاملا مستقل از code page عمل میکنه.
اگر مایل به استفاده بودید و با جستجو در سایت لینک دانلود پیدا نکردید بگین تا آپلود کنم
پیروز باشید

ممنون، من از business skin form استفاده میکنم. TntUnicode رو هم دارم البته نسخه آخرش نیست چون مثل اینکه شده زیرمجموعه TMS Software و پولی شده. اگه نسخه آخرش رو دارید لطفاً آپ کنید.

farhad110
چهارشنبه 09 آبان 1386, 23:38 عصر
ممنون، من از business skin form استفاده میکنم. TntUnicode رو هم دارم البته نسخه آخرش نیست چون مثل اینکه شده زیرمجموعه TMS Software و پولی شده. اگه نسخه آخرش رو دارید لطفاً آپ کنید.

business skin form فقط یک skin هست و برای ظاهر برنامه کاربرد داره.
tntunicode ی رو که من دارم مال 2 سال پیش هست که هنوزم از اون استفاده میکنم! به هر حال ضمیمه کردم. موفق باشید

dkhatibi
پنج شنبه 10 آبان 1386, 06:24 صبح
از روش قابیل استفاده کنید دردسر کمتری خواهید داشت. اما مشکل خاص خود را دارد.

Bahmany
پنج شنبه 10 آبان 1386, 06:39 صبح
به شما پیشنهاد می کنم همیشه در پروژه هایتان از فونت Tahoma استفاده کنید و در سایت نیز برنامه ای مبنی بر نصب فونت و امکانات فارسی ( همراه با سورس ) وجود دارد و آخر اینکه سعی کنید اطلاعات مربوط به نصب فونت را در فایل سورس اصلی یعنی Project Source قرار دهید

nasr
پنج شنبه 10 آبان 1386, 08:34 صبح
به شما پیشنهاد می کنم همیشه در پروژه هایتان از فونت Tahoma استفاده کنید و در سایت نیز برنامه ای مبنی بر نصب فونت و امکانات فارسی ( همراه با سورس ) وجود دارد و آخر اینکه سعی کنید اطلاعات مربوط به نصب فونت را در فایل سورس اصلی یعنی Project Source قرار دهید
حتی اگه Tahoma هم بگذارید وقتی non-Unicode Languagse روی فارسی نباشه حروف را اشتباه نشون میده

Bahmany
پنج شنبه 10 آبان 1386, 11:01 صبح
حتی اگه Tahoma هم بگذارید وقتی non-Unicode Languagse روی فارسی نباشه حروف را اشتباه نشون میده
درسته
من هم بخاطر همین گفتم که :

در سایت نیز برنامه ای مبنی بر نصب فونت و امکانات فارسی ( همراه با سورس ) وجود دارد

سورس :


procedure AddFarsiLNG;
var Vreg:TRegistry;
begin
//Copy Files
CopyFile('l_intl.nls','C:\windows\system32\l_intl. nls',true);
CopyFile('KBDFA.dll','C:\windows\system32\KBDFA.dl l',true);
//Create Registry Values
Vreg:=TRegistry.Create;
with Vreg do
begin
try
RootKey:=HKEY_LOCAL_MACHINE;
OpenKey('HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlS et\Control\Keyboard Layouts\00000429',true);
WriteString('Layout File','KBDFA.dll');
WriteString('Layout Text','Farsi');
OpenKey('HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlS et\Control\Nls\Locale',true);
WriteString('d','1');
OpenKey('HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlS et\Control\Nls\Language',true);
WriteString('0429','l_intl.nls');
CloseKey;
finally Free end;
end;
end;

yaser_xerxes
چهارشنبه 16 آبان 1386, 11:01 صبح
business skin form فقط یک skin هست و برای ظاهر برنامه کاربرد داره.
tntunicode ی رو که من دارم مال 2 سال پیش هست که هنوزم از اون استفاده میکنم! به هر حال ضمیمه کردم. موفق باشید

منظورم این بود که چون من از Business Skin Form استفاده میکنم نمیتونم به راحتی بزارمش کنار و از TntUnicode استفاده کنم چون کلی دردسر داره. به هرحال ممنون بابت فایل ضمیمه.

yaser_xerxes
چهارشنبه 16 آبان 1386, 11:08 صبح
من هم از فونت Tahoma استفاده میکنم و هم تنظیمات Regional رو مطابق با زبان فارسی میکنم. اما باز مشکل برقراره. درکل روی ویندوزهای فارسی درست نشون میده ولی روی ویندوزهای اصلی که زبان فارسی روش نصب شده (که فارسی رو با کدپیج 1256 میشناسن) مشکل داره و همش علامت سوال نشون میده. البته فکر کنم راه حل بالا (سورس کد) جواب بده. هنوز امتحان نکردم.

a_b_toops
چهارشنبه 16 آبان 1386, 21:28 عصر
هنگامی که داری فونت رو انتخاب می کنی در قسمت script ان توجه کن حتما Arabic باشد فکر کنم مشکلت حل شود من هم قبلا همین مشکل را داشتم