ورود

نسخه کامل مشاهده نسخه کامل : کمک:در مورد ارتباط صفحه کلید و دکمه های ویبی



vb666
08-09-2008, 11:49
با سلام به تمامی ویبی کارها
آقا من یه سوال داشتم این که چطوری میشه
مثلآ وقتی یه دکمه a رو زدی کامندهای روی فرم زده بشند
دقیقآ کار مآوس رو انجام بده
دمتون گرم

vb_lord_AR
11-09-2008, 09:25
ببین برای این کار به تابع key press فورم برو در اینجا هر وقت کلیدی زده بشه KeyAscii به تو داده می شه
KeyAscii کلید a فکر کنم 97 باشه
حالا با یه دستور if چک کن اگه KeyAscii مساوی با 97 باشه
call command1_click()

بهرام_62
11-09-2008, 19:06
ببین وی بی در این مورد امکانات زیادی داره
1.هر جای برنامه هر وقت کلید مثلا a زده شد برنامه یک کاری رو انجام
2.فقط روی شیئی خاص وقتی کلید a زده شد برنامه عملی رو انجام بده
3.در هر شیئی وقتی کلید a زده شد برنامه کار مجزایی انجام بده
4.هر جای ویندوز کلید a زده شد برنامه عمل خاصی رو انجام بده(حتی اگر فوکوس روی برنامه نبود)
گزینه 2 و 3 تقریبا یکی هستن

برای گزینه اول:
باید مشخصه KeyPreview فرم رو با مقدار True قرار بدی:
بعد توی گزینه key press فرم شرطی رو که دوست عزیز vb_lord_AR گفتن رو چک کنی
حالا یا با If یا با Select case
الان فیلمش شروع شد بعدا بقیش رو تایپ می کنم:دی

بهرام_62
11-09-2008, 19:53
خوب فیلمش تموم شد
برای بدست آوردن Keyasci دکه های کیبورد هم می تونی از کد زیر استفاده کنی:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
البته روش راحتترش اینه که به جای اینکه کی اسکی رو چک کنی کاراکتر اسکی رو چک کنی
فرقش هم اینه:
چک کردن کی اسکی:

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

و اینم چک کردن کاراکتر:

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

خوبی روش دوم اینه که نمی خواد کد سکی همه کاراکتر ها رو حفظ کنی

البته برای اینکه نخواد همه رو حفظ کنی می تونی از روش اول استفاده کنی ولی به جای شماره از ثابت های ویبی استفاده کنی منظورم اینه:

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


اما برای اینکه فقط روی شیئی خاص وقتی کلیدی رو می زنی کاری صورت بگیره باید مشخصه KeyPreview فرمت رو False مقدار دهی کنی و در قسمت Keypress همون شیئی که می خوای کد رو بنویسی

و برای اینکه هر جای ویندوز کلیدی رو زدی برنامه بفهمه باید از Api استفاده کنی که اگه خواستی سرچ کن تو فروم هست

نکته
در گزینه Keypress فرم و شی ها بعضی دکمه ها کارایی ندارن مثل دکمه های جهت نما کلید های F و ...
که اگر می خوای از اینها هم استفاده کنی بهتره از گزینه Form_KeyDown یا Form_Keyup استفاده کنی که همه دکمه ها رو میشناسه و کدنویسیش هم تقریبا شبیه همون قلیست ولی فقط می تونی از گزینه اول استفاده کنی منظورم کد هست باید از کد زیر استفاده کنی:

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

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

اما اشکالی که اینجا باز داری اینه که نمی تونی کلید های ترکیبی رو تشخیص بدی منظورم مثلا:
Ctrl + a هست که در قسمت Keypress همچین چیزی امکان داره:10:
ولی باز توی Keypress نمیشه ctrl تنها رو تشخیص داد که اینجا میشه

اگه می بینی اینقدر توضیح دادم برای اینه که خوب بفهمی و مثل من سر در گم نشی آخه خودم وقتی معلممون اینا رو توضیخ داد خیلی گیج شدم:41:
واسه همین یک جوری برات توضیح دادم که همش رو بفهمی:31:
البته توی Keydown هم میشه کلید های کنترل و شیفت و اینا رو تشخیص داد ولی سخت تره و باید از متغیر Shift استفاده کنی:46: