PDA

View Full Version : نوشتن با یک زبان مشخص در edit



amirtofighi
دوشنبه 26 مهر 1389, 11:36 صبح
با سلام
میشه راهنماییم کنین چطور میشه کاری کرد که تو یه ادیت فقط بشه فارسی یا فقط بشه انگلیسی نوشت؟
مرسی

Felony
دوشنبه 26 مهر 1389, 13:33 عصر
در رویداد OnChange یا OnKeyPress یا OnKeyDown مربوط به Edit مورد نظر کد اسکی یا خود کارکتر وارد شده رو بررسی کنید .

amirtofighi
دوشنبه 26 مهر 1389, 13:39 عصر
کد اسکی یا خود کارکتر وارد شده رو بررسی کنید
خب عزیز دل اگه بلد بودم که مزاحم شما نمیشدم!

Felony
دوشنبه 26 مهر 1389, 14:06 عصر
خب عزیز دل اگه بلد بودم که مزاحم شما نمیشدم!

یکم هم خودتون تلاش کنید ، در رویداد OnKeyPress شئ Edit مورد نظر کد زیر رو بنویسید ( به عنوان نمونه ) :

if Key= 'ب' then
ShowMessage('Farsi');

amirtofighi
دوشنبه 26 مهر 1389, 20:56 عصر
فکر کنم سوال منو خوب متوجه نشدید
منظورم اینه که تو یه ادیت مثلا فقط بشه انگلیسی نوشت واگه با alt+shift زبان ویندوز فارسی شد بازم یا انگلیسی بنویسه یا اصلا چیزی ننویسه و بالعکس برای زبون فارسی
اینطور ک شما گفتین برا 32 حرف فاسی و 28 حرف انگلیسی باید اون کد شما رو بنویسم
هیچ کدی وجود نداره که برنامه تشخیص بده زبان ویندوز چیه و اونو به زبان دلخواه ما تغییر بده و با تغییر زبان ویندوز نشه زبان نوشتاری برنامه رو تغییر داد؟
واضح تر بگم کاری کنیم که اگه زبان ویندوز فارسی هست توی ادیت برنامه انگلیسی بنویسه

Felony
دوشنبه 26 مهر 1389, 21:19 عصر
هیچ کدی وجود نداره که برنامه تشخیص بده زبان ویندوز چیه و اونو به زبان دلخواه ما تغییر بده و با تغییر زبان ویندوز نشه زبان نوشتاری برنامه رو تغییر داد؟
این کار از نظر فنی درست نیست ، شما میخوای تو برنامت فقط فارسی یا انگلیسی نوشته بشه و به خاطر این کار میخوای کل زبان ویندوز رو به فارسی یا لاتین تغییر بدید ؟ عملکرد شما فقط باید در سطح بررنماه خودتون باشه ، با این حال اگر بر این کار اسرار دارید تغییر زبان صفحه کلید رو در هیمن بخش جست و جو کنید .

میتونید به همون روشی که گفتم عمل کنید که کار چندان سختی هم نیست ، با یک Case میشه پیادش کرد ، یادمه میشد زبان رو در سطح برنامه تغییر داد که در دیگر برنامه ها مشکلی ایجاد نکنه ولی الان دقیق به ذهنم نمیرسه .

amirtofighi
دوشنبه 26 مهر 1389, 21:52 عصر
شما میخوای تو برنامت فقط فارسی یا انگلیسی نوشته بشه و به خاطر این کار میخوای کل زبان ویندوز رو به فارسی یا لاتین تغییر بدید
نه منظورم این نیود که کل زبان ویندوز به زبان مورد نظر ما تبدیل بشه بلکه فقط میخواستم استفاده از alt+shift که زبان مورد استفاده رو مشخص میکنه تو برنامه من تاثیر نداشته باشه
این کد باعث میشه زبان برنامه و چینشش فارسی بشه:

Application.BiDiKeyboard := '00000429';
ولی alt+shift روی اون تاثیر میذاره و انگلیسیش میکنه
یه مثال سادش سایت سازمان سنجش هست که موقع ثبت نام شما نمیتونین به هیچ وجه انگلیسی تایپ کنید و فقط فارسی قبول میکنه
احتمال باید همون روش چک کردن هر کاراکتر ورودی رو استفاده کرد

devil00x
سه شنبه 27 مهر 1389, 08:44 صبح
دوست عزیز می تونی یه جدول تبدیل بزاری مثلا تو مد فارسی چک کنی اگه a زده شده "ش" رو عوض بزاری و اگه n زده شده "د" رو جایگزین کنی مثلا تغییر کد سیستم ها ، امیدوارم که متوجه منظورم شده باشید.