PDA

View Full Version : سوال: keycode حروف خاص



Shahramdindoust
سه شنبه 11 آذر 1399, 21:39 عصر
همانطور که میدانید هر حرفی در کامپیوتر معمولا keycode خودش را دارد(در رویداد keydown ). مثلا keycode کلید "ت" مساوی 74 و keycode اینتر 13 و ... است. ولی بعضی حروف که ترکیبی هستند اگر بخواهیم تو کدنویسی به اون حروف اشاره کنیم ،چون ترکیبی هستند(ترکیبی ازshift و یک کلید دیگر) باید سراغ keyAscili اون حرف بریم اون هم تو رویداد (keypress) مثلا keyAscili ویرگول 1548 و keyAscili همزه "ء" 1569

حالا برایم لازم شده که keyAscili برای "نیم فاصله" رو بدونم هر چی تو سایتهای مختلف می گردم پیدا نمیکنم

Shahramdindoust
پنج شنبه 13 آذر 1399, 17:57 عصر
کسی نمیداند؟

eb_1345
پنج شنبه 13 آذر 1399, 18:42 عصر
همانطور که میدانید هر حرفی در کامپیوتر معمولا keycode خودش را دارد(در رویداد keydown ). مثلا keycode کلید "ت" مساوی 74 و keycode اینتر 13 و ... است. ولی بعضی حروف که ترکیبی هستند اگر بخواهیم تو کدنویسی به اون حروف اشاره کنیم ،چون ترکیبی هستند(ترکیبی ازshift و یک کلید دیگر) باید سراغ keyAscili اون حرف بریم اون هم تو رویداد (keypress) مثلا keyAscili ویرگول 1548 و keyAscili همزه "ء" 1569

حالا برایم لازم شده که keyAscili برای "نیم فاصله" رو بدونم هر چی تو سایتهای مختلف می گردم پیدا نمیکنم
منظورتون از نیم فاصله چیه ؟
با یک بار فشار دادن کلید Space کیبورد یک فاصله ایجاد میشود و 32 هم keycode یک فاصله است.

padide55
پنج شنبه 13 آذر 1399, 19:50 عصر
non-breaking spase
کدش برای اکسس
half spase
semi space
داخل ورد هست ولی برای اکسس نیافتم.

Shahramdindoust
پنج شنبه 13 آذر 1399, 23:12 عصر
منظورتون از نیم فاصله چیه ؟
با یک بار فشار دادن کلید Space کیبورد یک فاصله ایجاد میشود و 32 هم keycode یک فاصله است.
برای تایپ نیم فاصله باید shift+space فشار داده شود وقتی نمی خواهیم دو حرف به هم بچسبند مثلا خود کلمه نیم فاصله به این شکل اشتباه است "نیمفاصله" و اتفاقا به این شکل هم اشتباه است"نیم فاصله" . نباید بین هر دو کلمه "نیم" و "فاصله" فاصله باشد و در عین حال نباید بهم بچسبند برای این کار نیاز به نیم فاصله است که از ترکیب shift+space و در بعضی کیبورد ها ctrl و - ایجاد می شود در word امتحان کنید.
و یک نکته: من اشتباها در عنوان تایپیک بجای
keyAscili که مربوط به رویداد keypress است، از کلمه keycode استفاده کردم هرچه اصلاح کردم ولی صفحه رو که دوباره لود میکنم اصلاحات انجام نشده است.
152572

atf1379
جمعه 14 آذر 1399, 00:53 صبح
برای تایپ نیم فاصله باید shift+space فشار داده شود وقتی نمی خواهیم دو حرف به هم بچسبند مثلا خود کلمه نیم فاصله به این شکل اشتباه است "نیمفاصله" و اتفاقا به این شکل هم اشتباه است"نیم فاصله" . نباید بین هر دو کلمه "نیم" و "فاصله" فاصله باشد و در عین حال نباید بهم بچسبند برای این کار نیاز به نیم فاصله است که از ترکیب shift+space و در بعضی کیبورد ها ctrl و - ایجاد می شود در word امتحان کنید.
و یک نکته: من اشتباها در عنوان تایپیک بجای
keyAscili که مربوط به رویداد keypress است، از کلمه keycode استفاده کردم هرچه اصلاح کردم ولی صفحه رو که دوباره لود میکنم اصلاحات انجام نشده است.


راستش من هم متوجه منظورتون نمیشوم . البته متوجه توضیح شما شدم که در هنگام تایپ مثلاً کلمه نیم فاصله برای اینکه بین نیم و فاصله به اندازه نصف فاصله ای که فشار دکمه spsce بر روی کیبورد ایجاد می کند باید همزمان کلیدهای ctrl و
spsce فشار داده شود ولی اینکار در هنگام تایپ و با فشار دکمه های کیبورد انجام میشه و نیازی keyAscili و keycode کلیدها نیست .ولی در اکسس و در چه رویدادی بین چنین کلماتی فاصله بیندازی و نیاز به keyAscili داری متوجه نمیشوم
دقیقاً توضیح بده کاری که در اکسس میخواهید انجام بدهید به چه صورتی است

Shahramdindoust
جمعه 14 آذر 1399, 13:00 عصر
خب بگذارید یک مثال بزنم
ما در یک فرم اکسس دو تکست باکس داریم در محیط vb و در رویداد
keydown
شرطی داده ایم که در تکست باکس 1 اگر نام وارد شده با حرف ت شروع می شود، یعنی keycode مساوی 74 است(یعنی حرف ت) یک کار خاصی را انجام دهد.
حالا همین را برای تکست باکس 2 می خواهیم به شرط اینکه کاربر نیم فاصله را وارد کند و چون نیم فاصله یک کلید ترکیبی است باید از رویداد keypress استفاده کرد و نمیدانم keyAscili آن چند است؟
اگر خیلی بد توضیح می دهم مرا عفو کنید

eb_1345
جمعه 14 آذر 1399, 14:56 عصر
برای اجرای عملکرد کلیدهای ترکیبی در رویداد keycode از عملگرهای شرطی if و and استفاده شود
کد زیر برای وقتی که کلیدهای Ctrl و Spase فشار داده میشود :


If (KeyCode = 32) And (Shift = 2) Then
....
End If

Shahramdindoust
جمعه 14 آذر 1399, 18:04 عصر
برای اجرای عملکرد کلیدهای ترکیبی در رویداد keycode از عملگرهای شرطی if و and استفاده شود
کد زیر برای وقتی که کلیدهای Ctrl و Spase فشار داده میشود :


If (KeyCode = 32) And (Shift = 2) Then
....
End If


سپاسگذارم استاد گرامی
راستی یک سوال اگر بخواهیم متنی شامل عبارتی دوکلمه مثل همون نیم فاصله باشد چطور؟
من از این روش استفاده کردم جواب 1/2 داد:خجالت:
152597

Shahramdindoust
یک شنبه 16 آذر 1399, 17:03 عصر
این بار جای هر دو 17 و 189 رو عوض کردم بجای فایل همش تصویر می ذارم که لازم نباشه زیاد دانلود کنید


152598

padide55
یک شنبه 16 آذر 1399, 22:27 عصر
در رویداد key press
یکی از کلیدها .

باید این کد رو وارد کنید.



(KeyCode = 32) And (Shift = 2)

یعنی کد کلید مورد نظر رو تبدیل به این کلید میکنید.

Shahramdindoust
یک شنبه 16 آذر 1399, 23:59 عصر
اخه فرض بر اینه که در رویداد form load مخاهیم تکست ما حاوی کلمه ای باشه که حاوی نیم فاصله اس
میشه یه فایل نمونه بذارین سردر گم شدم

atf1379
دوشنبه 17 آذر 1399, 01:52 صبح
برای اجرای عملکرد کلیدهای ترکیبی در رویداد keycode از عملگرهای شرطی if و and استفاده شود
کد زیر برای وقتی که کلیدهای Ctrl و Spase فشار داده میشود :


If (KeyCode = 32) And (Shift = 2) Then
....
End If




در رویداد key press
یکی از کلیدها .

باید این کد رو وارد کنید.



(KeyCode = 32) And (Shift = 2)

یعنی کد کلید مورد نظر رو تبدیل به این کلید میکنید.

این کدکه در پست 8 پیشنهاد شده . ضمن اینکه کلمه and باید با if و then و End If باید همراه باشه

eb_1345
دوشنبه 17 آذر 1399, 02:37 صبح
.....................................:لبخندس اده:

padide55
دوشنبه 17 آذر 1399, 10:53 صبح
اگر هدف فقط تایپ نیم فاصله هست فایل زیر رو ملاحظه بفرما

Shahramdindoust
دوشنبه 17 آذر 1399, 11:47 صبح
از همه دوستان سپاس گذارم مشکلم رو حل نمودید