PDA

نسخه کامل مشاهده نسخه کامل : چگونگی دریافت کدهای Ascii در پاسکال



omid_matrix3
31-12-2006, 12:36
برای اینکه ما بتو انیم برای کلید های کی برد کار خاصی تعریف کنیم از کد های ASCII استفاده می کنیم

روش استفاده

در قسمت var یک کلید از نوع string تعریف کنید ;var f:string

سپس بعد از begin مقدار f(یا هر کلید دلخواه که تعریف کردید) را بصورت زیر تعریف کند ;f:=readkey

حالا با یک شرط میتونید برای هر کد دسیمان یه کار تعرف کنید
برای تعریف مقدار دسیمان از # استفاده می کنیم بدین صورت

if f=#0115 then

(کاری که می خواهیم با زدن ان حرف انجام بده )
در اینجا کد 0115 مربوط به حرف s کوچک است یعنی شما تعریف می کنید که اگه از کی برد s را بزنه فلان کار را بکنه

برای پیدا کردن کدهای دسیمان می توانید یک ویرستار متن مانند Notepad را باز کرده وکلید ALT سمت راست را نگه داشته واز قسمت Num Lock اعداد مختلف را امتحان کنید و نتیجه را مشاهده کنید

یکی از مهمترین کدها دسیمان مربوط به کلید های جهت نما هستند که در ساختن بازی ها و دوز ها بسیار کاربرد دارن
و من اون هارو به زحمت یعنی با کمک اقای اکبری جدی واستادمان اقای زرگری پیدا کردم

#72 بالا 80# پایین
#75 چپ 77# راست

اگه خواستید نمونه برنامه رو هم که نوشتم و با کلید های جهت نما اسم ورودی را حرکت می دهد را براتون می زارم

حالا یه سوال از شما اساتید بزرگ برنامه نویس داشتم میشه به من تازه کار توضیح بدید که چجوری با case این کد هارو مقدار دهی کنم

Admiral
31-12-2006, 12:47
دو نوع کد برای کلید ها داریم کدهای عادی و Scan Code ها.

کد کلید های جهت دار (Arrow kwys) دو بایتیه. یعنی اول با یه readkey بایت اول رو که صفر هست بخونیم و بایت بعدی کد کلید هست.

در ضمن لازن نیست از هگزادسیمال اسفاده بکنید!
برای پیداکردن کد اسکی کلید ها هم میتونید از تابع ord استفاده کنید.

توی Case هم مقدار دهی نمیکنیم. بر حسب یه مقدار تصمیم میگیرم چه دستوراتی اجرا بشه.

اگه وقت کردم یه Sample برات میزارم.

موفق باشید

Admiral
31-12-2006, 13:07
اینو همین الان نوشتم :


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

omid_matrix3
31-12-2006, 19:13
برنامه رو که قبل و بعد از اموزش شما نوشتم 30 سطر تو شر ط ها کم شد ای ول


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


بعد از استفاده ازcase


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

حال یه سوال دیگه ایا می تو نم بدون استفاده از clrscr همین برنامه رو بنویسم