PDA

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



nassim_20
پنج شنبه 23 خرداد 1387, 09:05 صبح
دوستان من توی این زمینه زیاد جستجو کردم و در حال حاضر هم با این مساله درگیرم و دیدم مشکل اصلی همه تازه کارها همین است
بهتره مشکل فارسی رو به دو حالتتقسیم کنیم و دوستانی که در رابطه با هرکدوم راه حلی عملی دارند ارائه دهند
فرض مسئله:
ویندوز رو همین الان نصب کردید و می خواهید توی اون یه نرم افزاری که با دلفی نوشتید رو نشون بدید
حالت اول: تنها نمایش متن فارسی است
چکار باید کرد می دنم همه می گویند باید reginal and languge ... تنظیمات باید انجام داد درست اولا کدام تنظیمات و دوما چطوری؟ لطفا اگه کسی کدی در این زمینه داره لطف کنه

حالت دوم: علاوه بر نمایش ورودی فارسی هم دارند
با این مسئله چطور باید برخورد کرد ظاهرا بازهم نیاز به تنظیمات reginal... است اما باز کدام تنظیمات

nassim_20
پنج شنبه 23 خرداد 1387, 09:12 صبح
البته راه حلی که من خودم دارم اینکه از فونتهای مریم استفاده کنیم و در سیستم کاربر هم این فونتها رو نصب کنیم
اما اگه کسی مثل بنده که متون رو اماده دارم و از قبل بصورت html دراومده و بعلت حجم زیاد امکان تایپ مجدد نیست باید چکار کرد

باز هم جواب خودم رو می دهم خوب معلومه کد نویسی باید یه تابع مبدل بسازم که فونت مثلا tahoma رو به یکی از فونتهای مریم تبدیل کند
مشکل اصلی منهم همین تابع مبدل است
دوستان می تونند کمکی کنند اگه این تابع ساخته بشه فکر کنم تا حدودی مشکل هم حل بشه
البته این راه حل فقط برای نمایش فارسی است برای تایپ فارسی باید یه کامپوننت ساخته بشه که توی اون بش با فونتهای مریم تایپ کرد

با این کار دیگر به تنظیمات ویندوز کاربر که ممکن است برای کاربر هم خوشایند نباشه کاری نداریم

seyed_farid
پنج شنبه 23 خرداد 1387, 10:30 صبح
با سلام
برای اینکه بتونید تنظیمات زبان و منطقه ای را راحت انجام بدهید میتونید از کدهای این برنامه استفاده کنید و تو شروع برنامه تون در صورت نیاز اینکار رو انجام بدید و کاربر رو راحت کنید.من این برنامه رو تو تاپیک زیر فرستادم.
http://barnamenevis.org/forum/showthread.php?t=108689&page=3

HadiDelphi
پنج شنبه 23 خرداد 1387, 12:56 عصر
بهترین روش استفاده از فارسی نویس هست

اصغر (پآچ)
پنج شنبه 23 خرداد 1387, 13:36 عصر
سلام
من یه فکر دیگه ای دارم اونم اینکه موقع نصب ویندوز امکانات فارسی رو به سیستمت اضافه کن که اینهمه زحمت نکشی و کر زیاد هم نکنی اما اگه میخوای بگی که شاید رو سیستم کاربر اون امکانات اضافه نشده می تونی از توابع RegionalOption که فکر کنم یه کامپوننت برای دلفی است استفاده کنی اگه همین کلمه رو در سایت جستجو کنی پیداش می کنی با 3 ضمیمه هست که فایلهای مورد نیاز رو همراه خودش داره اگه دوست داری می تونی از اون توی برنامه ات استفاده کنی!

موفق و موید باشی

nassim_20
چهارشنبه 29 خرداد 1387, 16:35 عصر
با سلام
برای اینکه بتونید تنظیمات زبان و منطقه ای را راحت انجام بدهید میتونید از کدهای این برنامه استفاده کنید و تو شروع برنامه تون در صورت نیاز اینکار رو انجام بدید و کاربر رو راحت کنید.من این برنامه رو تو تاپیک زیر فرستادم.
http://barnamenevis.org/forum/showthread.php?t=108689&page=3
یه سوال:
چطوری میشه زبان پیش فرض ویندوز کاربر رو فهمید که بعد از خروج از برنامه برگردیم به همان زبان و تنظیمات کاربر تا حدی محفوظ بماند

nassim_20
پنج شنبه 30 خرداد 1387, 07:46 صبح
بهترین روش استفاده از فارسی نویس هست

آیا شما کامپوننت یا کدی در این رابط دارید


یه سوال دیگه کارایی کامپوننتهای TntUnicodeControls در این رابط چیه آیا حداقل برای نمایش فارسی مناسب هستند بطوریکه نیاز به نصب فارسی در ویندوز نباشه

nassim_20
شنبه 01 تیر 1387, 16:56 عصر
آیا شما کامپوننت یا کدی در این رابط دارید


یه سوال دیگه کارایی کامپوننتهای TntUnicodeControls در این رابط چیه آیا حداقل برای نمایش فارسی مناسب هستند بطوریکه نیاز به نصب فارسی در ویندوز نباشه
از دوستانی که در این رابطه اطلاعاتی دارند همچنان منتظر پاسخ هستم
همچنین سوال قبلی

sql_qassem
یک شنبه 02 تیر 1387, 11:25 صبح
1- reginal and languge
2- تب language
3- دوتا تيك complex script و east asian language رو بزن و سي دي xp رو بذار و apply كن.
4- بعد دكمه details رو بزن.
5- دكمه add و انتخاب Farsi از ليست زبانها توجه داشته باش كه keyboard layout هم بايد farsi رو انتخاب كني.
6- ok رو بزن و برگرد به تب صفحه قبل.
7- تب advance قسمت انتخاب farsi رو انتخاب كن.
8- تب Regional Option هم همين طور.
حالا فونت هاي استاندارد فارسي مثل tahoma روي سيستمت نصب شده اند.و به راحتي مي توني فارسي در همه جا تايپ يا ورود اطلاعات كني . فقط يك مشكل مي مونه اون هم جابجايي حروف "ژ" و "پ" بصورت غير استاندارد هستند كه با كپي dll هاي فارسي ويندوز ايكس پي اول در شاخه \window\system32\dllcach
و سپس در window\system32\ و يك ريستارت اون هم حل مي شه.
9- پيشنهاد مي كنم كه در كل برنامه هم از فونت استاندارد tahoma استفاده كني .
10- روي دسكتاپ رايت كليك كن و properties رو بزن تا بري توي display Option .
11- تب appearance دكمه advanced رو بزن.
12- تمام قسمت ها رو انتخاب كن مخصوص منوها و متن و پيغام ها رو . اگه tahoma نيستند فونت را tahoma كن.

قرار شد توي برنامه هم براي تمام obejct ها از tahoma استفاده كني .
دوم براي پيغام هاي داخل برنامه هم بايد توي delphi\tools(menu)\editor properties\display\editor font فونت courier new رو انتخاب كرده باشي.

والسلام نامه تمام
همگي موفق باشيد.

nassim_20
یک شنبه 02 تیر 1387, 13:16 عصر
اینها که گفتید تنظیمات ویندوز است و کاربر باید خودش انجام دهد کاری که قرار است روانه بازار شود به نظر شما جالب است که به کاربر بگوییم:
"کاربر گرامی برای استفاده از محصولات ما می بایستی این مسیر رو دنبال کنید بعد سی دی ویندوز رو در سی دی رام قرار دهید و.............."
حالا کاربر بیچاره اگه سی دی ویندوز دم دستش نباشه یا اصلا از ویندوز چیزی سر در نیاورد چکار باید بکند اونوقت است که هزار تا بدوبیراه به برنامه نویس و او شرکت راهی میکنه و بقیه ماجرا
برادر: یه برنامه نویس باید همیشه راحتی کاربر رو در نظر بگیرد و همیشه تصور کند این برنامه قرار است توسط کسی اجرا شود که جز کلیک و زدن چند دکمه صفحه کلید چیز دیگری بلد نیست

nassim_20
سه شنبه 04 تیر 1387, 12:51 عصر
یه سوال:
چطوری میشه زبان پیش فرض ویندوز کاربر رو فهمید که بعد از خروج از برنامه برگردیم به همان زبان و تنظیمات کاربر تا حدی محفوظ بماند

از طریق کد زیر می توان زبان جاری ویندوز رو بدست اورد

procedure TForm1.Button1Click(Sender: TObject);
var
Ident: Integer;
MyLang: PChar;
const
Size: Integer = 250;
begin
GetMem(MyLang, Size);
Ident:=GetSystemDefaultLangID;
VerLanguageName(Ident, MyLang, Size);
Label1.Caption:=StrPas(MyLang);
FreeMem(MyLang);
end;