باسلام
چگونه می شود در ادیت باکس های مربوط به ورود اطلاعات defalt فارسی یا انگلیسی تعریف کرد چون برخی از فیدلها باید فارسی تایپ شود و برخی انگلیسی و اگر از صفحه کلید استفاده کنیم معقو ل نمی باشد
تشکر از راهنمایی شما
باسلام
چگونه می شود در ادیت باکس های مربوط به ورود اطلاعات defalt فارسی یا انگلیسی تعریف کرد چون برخی از فیدلها باید فارسی تایپ شود و برخی انگلیسی و اگر از صفحه کلید استفاده کنیم معقو ل نمی باشد
تشکر از راهنمایی شما
با این دستور keyboard فارسی میشه
LoadKeyboardLayout('00000429',KLF_ACTIVATE) ;یه نگاه به msdn تمام کدها رو مشخص کرده!!
LoadKeyboardLayout اینو در msdn جستجو کن
ُسلام
من کدمو اصلاح کردم حالا run کن درست میشه!
قبلی یه صفر کم داشت :oops:
میتونی در onenter هر Edit این کار رو انجام بدی
موفق باشی
سلام
ظاهرا در win98 جواب نمی دهد.
در ویندوز 98 بخاطر اینکه فارسی شده نسخه عربی ویندوز میباشد باید بجای 429 که کد زبان فارسی است از کد 401 (کد زبان عربی) استفاده کنید. یعنی بدین صورت:
LoadKeyboardLayout('00000401',KLF_ACTIVATE) ;;
برای برگشتن به حالت تایپ انگلیسی در همه ویندوزها از کد 409 استفاده میشود. مثال:
LoadKeyboardLayout('00000409',KLF_ACTIVATE) ;;
شما میتوانید یک کد داشته باشید که نسخه ویندوز را چک کند. اگر ویندوز جزو خانواده NT باشد (اعم از NT , 2000 , XP) از کد 429 و اگر از خانواده 9x باشد (اعم از 95 , 98 , Me) از کد 401 برای فارسی کردن صفحه کلید استفاده شود.
اینم یک کد نمونه برای تشخیص نوع ویندوز:
Interface:
type
TOSType = (ostUnknown,ostWin9x,ostWinNT); //uses by OS_Type() function.
function OS_Type : TOSType;
Implementation:
function OS_Type : TOSType;
var
osv : TOSVersionInfo;
begin
osv.dwOSVersionInfoSize := sizeof(osv);
GetVersionEx(osv);
Case osv.dwPlatformId of
VER_PLATFORM_WIN32_NT : Result := ostWinNT;
VER_PLATFORM_WIN32_WINDOWS : Result := ostWin9x;
else Result := ostUnknown;
end; //Case
end;
بابا!! چه windows داری؟؟؟
البته با جواب آقای کرامتی دیگه حله!!
تنها با اضافه کردن دو خط زیر به فایل dpr برنامه٬ خود دلفی برای هر فیلد با توجه به ویژگی BidiMode اون زبان مناسب برای صفحه کلید رو انتخاب میکنه.
begin
Application.Initialize;
Application.BiDiKeyboard := '00000401';
Application.NonBiDiKeyboard := '00000409';
Application.CreateForm(TForm1, Form1);
Application.Run;
end.
راستی حالا که بحثش پیش اومد برای ویندوزهای عیر فارسی راهی جز نوشتن یه فارسی ساز نیست؟ :?: