ورود

نسخه کامل مشاهده نسخه کامل : سوال : چطور در يك edit هميشه زبان فارسي داشته باشيم ؟



hp1361
08-01-2007, 20:55
سلام

دوستان در بحث هاي گذشته در مورد اينكه چطور زبان سيستم رو تغيير بدهيم صحبت كرده اند . كه استفاده از loadkeyboardlayout يكي از راه هاي بود .

حالا سوال من اينه كه چطور هميشه يك زبان رو داشته باشيم و وقتي كه كاربر از alt+shift استفاده مي كنه باز هم همون زبان قبلي رو داشته باشيم و كاربر قادر به تغيير زبان در اين شيئ نباشه

ممنون

hp1361
10-01-2007, 22:31
سلام

بابا من بيشتر از اينها از دلفي كارا ي اين انجمن انتظار داشتم

يه راهنمايي : در قسمت رويداد OnKeyDown بايد اين كار رو انجام داد.

ممنون و منتظرم

MasterData
11-01-2007, 12:11
در قسمت رويداد OnKeyDown بايد اين كار رو انجام داد
خودت که همه چی رو گفتی دیگه مشکلت چیه؟

hp1361
11-01-2007, 15:07
MasterData عزيز كجا من همه چيز رو گفتم ؟!

من اون كدي رو مي خوام كه بايد در اين قسمت نوشت

ممنون و منتظرم

m_maj
11-01-2007, 16:29
با سلام به همه
به نظر من و همون طور که گفته شده فکر می کنم باید در رویداد onkeydown صفحه کلید رو فیلتر کرد و هرگاه کلید های ترکیبی alt+shift فشرده شد اونها را null کرد.
به امید دیدار.

hp1361
11-01-2007, 18:05
سلام
آقا یکی بیاد مردانگی کنه و کد رو بنویسه ( نه اینکه چیکار کنم و چی بنویسم ) .

ممنون

hp1361
14-01-2007, 21:49
سلام

خودم كدش رو پيدا كردم تقديم به شما و البته خودم

در رويداد OnKeyDown اينها رو مي نويسيم :


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

00000429 و 00000409 براي زبان مورد نظر استفاده مي كنيم .

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

amir_2
23-02-2007, 19:33
type



on exit form
back to english font
LoadKeyBoardLayout('00000409',KLF_ACTIVATE);

-------------------------------------------------------------------------------------------------------------

on active form or on form show
for farsi font
LoadKeyBoardLayout('00000429',KLF_ACTIVATE);

--------------------------------------------------------------

mehdi_gh125
23-02-2007, 21:15
البته بگم با کد شما زمانی همیشه edit فارسی هست که کاربر بخواهد با alt+shift بین زبان ها سویچ کنه ولی اگر از languge bar بخواد راحت میتونه تو edit انگلیس وارد کنه .

Mahmood_N
24-02-2007, 03:28
سلام
با یه تایمر هم می شه این کار رو کرد ...
نیاز به این همه ... نیست ...
توی رویداد OnEnter مربوط به Edit ، تایمر رو فعال کن و توی رویداد OnExit مربوط به Edit ، تایمر رو غیرفعال کن ...
توی OnTimer مربوط به تایمر هم کد زبان فارسی رو بنویس ...
موفق باشید ...

MasterData
24-02-2007, 08:46
با یه تایمر هم می شه این کار رو کرد ...
نیاز به این همه ... نیست ...
حالا فرض كن توي اين فرم داره يك كوئري سنگين اجرا ميشه و كلي كنترلهاي ديگه روي فرم انجام ميشه
اين تايمر هم هي وقت خوش ميكنه و كلاك ميزنه حالا چي ميشه؟
عملا برنامه ميره اون دنيا
شي تايمر واقعا خيلي سنگينه البته يه كامپوننت تايمر هم هست كه به صورت مالتي ترد نوشته شده اون ديگه اين عيب رو نداره

hp1361
24-02-2007, 15:12
چرا اينقدر سخت مي گيرين
در رويداد OnEnter يا Onclick مربوط به edit زبان سيستم رو چك كنيد و به همون زباني كه مي خواهيد تغيير دهيد بالاخره اگر كاربر حتي بخواد از Lanquage Bar هم زبان سيستم رو تغيير بده بايستي دوباره در اون edit يا هر شيئ ديگه جهت نوشتن وارد بشه و يا كليك كنه

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

Mahmood_N
24-02-2007, 21:29
سلام

حالا فرض كن توي اين فرم داره يك كوئري سنگين اجرا ميشه و كلي كنترلهاي ديگه روي فرم انجام ميشه
اين تايمر هم هي وقت خوش ميكنه و كلاك ميزنه حالا چي ميشه؟
عملا برنامه ميره اون دنيا
شي تايمر واقعا خيلي سنگينه البته يه كامپوننت تايمر هم هست كه به صورت مالتي ترد نوشته شده اون ديگه اين عيب رو نداره
نه ، فکر نمی کنم Timer حافظه خاصی رو اشغال کنه !!
درواقع اشغال کردن حافظه به وسیله Timer به کاری که در OnTimer اون انجام میشه ربط داره ...
تایمر هایی هم که به صورت Thread کار می کنند ، کار انجام شده در OnTimer رو در یک Thread جدا انجام میدن تا مشکل حافظه پیش نیاد ...
ولی خوب میشه از یه Thread جدا هم استفاده کرد ( من یه برنامه برای کار با Tread توی سایت گذاشته بودم )

چرا اينقدر سخت مي گيرين
در رويداد OnEnter يا Onclick مربوط به edit زبان سيستم رو چك كنيد و به همون زباني كه مي خواهيد تغيير دهيد بالاخره اگر كاربر حتي بخواد از Lanquage Bar هم زبان سيستم رو تغيير بده بايستي دوباره در اون edit يا هر شيئ ديگه جهت نوشتن وارد بشه و يا كليك كنه

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

درسته اینطورییم میشه ولی توی OnKeyPress باید کلیدهای مربوطه رو Filter کنی ...
خلاصه ...

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

MasterData
25-02-2007, 07:43
نه ، فکر نمی کنم Timer حافظه خاصی رو اشغال کنه !!
درسته تايمر حافظه اشغال نميكنه ولي اگر قرار باشه در بازه زماني خيلي كوتاه انجام بشه سي پي يو رو مشغول ميكنه

درسته اینطورییم میشه ولی توی OnKeyPress باید کلیدهای مربوطه رو Filter کنی
من فلسفه اين تايمر رو نفهميدم چيه؟ :دي
بايد از اخر كدها رو ----- كنيم يا نه؟
برا اينكه توي يه اديت فقط كدهاي خاصي رو بتوني وارد كنيد در رحدادهاي OnKeypress OnKeyDown OnKeyUp كدهاي مربوطه رو كنترل كنيد