ايران ويج

نسخه‌ی کامل: دستوری برای خواندن صفحه کلید
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
سلام
همونطوری که میدونید با دستور ()GETKBD کیپدهای ماتریسی رو میشه خوند و اساس کار این دستور اسکن سطر و ستونهای معرفی شده است ولی مشکلی که این روش داره اینه که اگه یکی از کلیدهارو فشرده و در اون حالت نگهش داریم، حتی با رعایت تأخیر 250 میلی ثانیه تند تند برای ما عدد تولید میکنه.
حالا سوال اینجاست که چطور میشه تو بسکام یک صفحه کلید رو خوند به شرط اینکه حساس به لبه(بالارونده یا پایین رونده) باشه؟ آیا روش یا دستور خاصی سراغ دارین ؟
و یکی هم اینکه کسی دستوری برای پیکره بندی صفحه کلید بصورت دلخواه رو داره؟(یعنی اینکه مثلاً ارزش 2 تو محل سطر چهارم و ستون سوم قرار بگیره)

با تشکر
می شه عدد اول رو بگیریم و منتظر باشیم تا عدد 16 کیبورد دریافت بشه ( یعنی دکمه ای فشار داده نشه ) و حال عدد دوم رو بگیریم .

تو یکی از تایپیک ها یه مثال گذاشته بودم . ( نمی دونم چرا پیداش نمی کنم )
ممنون. روش جالبیه ولی تو برنامه های کوچیک میشه این روشو بکار برد چون تو برنامه های طولانی هم حجم برنامه زیاد میشه و هم پیچیده و گیج کننده میشه. من تو برنامم حدود 30 بار میخوام تک تک کلیدهای صفحه کلیدو بخونم. از حلقه تکرار هم نمیشه استفاده کرد بنابراین با این روش یه حافظه جانبی هم میخواد که برنامه اضافه شده رو توش ذخیره کرد. حتماً یه روش یا دستوری باید برای این کار باشه !
شما یه تابع بنویس که عدد کیبورد رو برگردونه . تو تابع منتظر باشه تا اول هیچ دکمه ای فشار داده نشه و بعدش عدد رو بگیره و برگردونه .

هر موقع هم می خواستی getkbd بنویسی فقط کافیه اسم تابع ات رو بنویسی .
آفرین . درسته. روش خیلی فکر کرده بودم نمی دونم چرا به فکر خودم نرسیده بود.
مرسی.
من چندین الگوریتم برای این منظور امتحان کردم. اکثراً شماره رو با تأخیر میخوند یا میکرو هنگ میکرد و ... . خلاصه الگوریتمها با دستورهای مختلف ظاهراً درست بنظر میرسیدند اما کارایی لازمو نداشتند. این زیر برنام ای که میذارم از نظر عملکرد بهترینشون بود که به جای دستور ( )getkbd میشه این زیر برنامه رو فراخوانی کرد

کد php:
Declare Sub Key
.
.
.
.
key 
.
.
.
.
Sub Key
Keyret
:
 
Getkbd()
 If 
16 Then
 
Do
 
Getkbd()
 
Loop Until A <> 16
 
Else
 
jmp keyret
 End 
If
 
End Sub