View Full Version : سوال: عوض شدن نابجای زبان ویندوز در دلفی 2010
farzad1343
چهارشنبه 01 تیر 1390, 10:48 صبح
با سلام
من از دلفی 2010 آخرین آپدیت استفاده میکنم کامپوننت key board layout رو هم نصب کردم
تمام پروژه های من در ویندوز اکس پی و سون (در نسخه های مختلف) هنگام جابجا شدن فوکوس بین ادیت و گرید (در یک فرم) زبان از فارسی به انگلیسی میره
از کدهای مختلف مثل
application.bidkeyboard و
active keyboard layout و کامپوننت مربوطه استفاده کردم
ولی نشد
یک پروژه کم حجم هم اتچ کردم
ممنون میشم اگه پاسخی دریافت کنم
vcldeveloper
دوشنبه 03 مرداد 1390, 13:12 عصر
من اطلاعی ندارم که اون کامپوننت Keyboard Layout که میگید؛ چی هست و چیکار میکنه. اما درباره Application.BiDiKeyboard؛ این خصوصیت زبان کیبورد برای کنترل های راست-به-چپ شده (BiDiMode = bdRightToLeft) را تعیین میکنه، نه کنترل هایی که راست-به-چپ نشدند. برای کنترل های راست-به-چپ نشده، از خصوصیت Application.NonBidiKeyboard استفاده میشه.
همچنین در یک تاپیک دیگه درباره استفاده از خصوصیات فوق در ویندوز ویستا و ویندوز 7 توضیح داده شد، و گفته شد که تابع API مربوطه در ویندوز در این نسخه ها به شدت کند شده، به همین علت، استفاده از این خصوصیات باعث ایجاد یک مکث در لود شدن فرم های برنامه یا تغییر فوکوس بین کنترل ها میشه، که بحث درباره این موضوع و راهکارهای دور زدن آن در همان تاپیک مطرح شد.
Delphi 2010
سه شنبه 18 مرداد 1390, 18:55 عصر
ممنون آقای کشاورز
میشه لینک اون تاپیک رو هم درج کنید
Anis131313
شنبه 02 مهر 1390, 23:35 عصر
سلام خدمت جناب کشاورز و دوستان عزیز
لینک بحث شده رو پیدا کردم : این هستش
http://barnamenevis.org/showthread.php?283515
اما واقعیتش رو بخواین من تمام صفحات اون رو خوندم ولی مشکلی که برام پیش اومده رو نتونستم با اون اطلاعات حل کنم...
در دورانی که با دلفی 6 یا 7 کار میکردیم برای تغیر زبان از یکی از کد های زیر در داخل فایل پروژه استفاده می کردیم :
Application.Initialize;
Application.BiDiKeyboard := '00000429';
Application.NonBiDiKeyboard := '00000409';
.
.
.
Application.Run;
یا
Application.Initialize;
ActivateKeyboardLayout($429,0);
.
.
.
Application.Run;
با انجام این کار برنامه تا زمان Terminate شدن زبانش روی فارسی فیکس میشد مگر اینکه کاربر خودش اون رو تغییر بده ، امشب من یه تکه برنامه واسه خودم داشتم مینوشتم که به چیز عجیبی که اینجا صحبتش شده بر خوردم...
در حین Switch کردن در بین فرم ها و بازی کردن با منو ها زبان Application خود به خود عوض میشه و با یه خورده بازی کردن باهاش متوجه شدم که وقتی بر روی DBGrid یک فرمی رو صدا میکنم (در رویداد ONClick-DBGrid) زبان عوض میشه. تا این زمانی که این متن رو نوشتم به دو چیز فقط فکر میکنم :
1. نوشتن یک Procedure که اگه در فرمی زبان فارسی نبود اون رو فارسی کنه و این Procedure رو توی OnShow تمامی فرم ها صدا کنم (که زیاد جالب نیست و از نادانی منه)
2. بیخیال این دلفی 2010 شم و برم سراغ دلفی 7 یا 6
مگر اینکه دوستان بهم کمک کنن که بتونم زبان فارسی رو از ابتدای اجرای برنامه تا انتهای آن ثابت نگه دارم و نه مایکروسافت و نه هیچ DLL یا Service دیگه ای مزاحم کارم نشه.
دلفی : 2010
ویندوز : 7
ممنون از بزرگواری شما
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.