PDA

View Full Version : استفاده از کلید های میانبر در برنامه ها



ictboy
یک شنبه 08 شهریور 1388, 17:05 عصر
با سلام خدمت اساتید گرامی
من میخوام تو برنامه ام برای انجام بعضی از کارها کلید میانبر تعریف کنم . مثال در یک فرم ورود اطلاعات برای به جای اینکه کاربر دکمه ایجاد را بزنه می خوام Ctrl +N رو بزنه و فرم ایجاد بازبشه یا مثلا Ctrl +S رو بزنه رکورد مورد نظر ذخیره بشه . چی کار باید کرد.

توی سایت کلید ها ی میانبر و Hot key رو سرچ کردم ولی چیز بدرد بخوری پیدا نکردم.
البته در رویداد OnKeydown هر آبجکت میشه گفت با بعضی از کلید ها مثل F2 این کار را انجام بده ولی می خوام کاربر از کلیدهای ترکیبی استفاده کنه دلیل دیگر هم اینکه که حتما باید روی آبجکت مورد نظر باشد تا کلید میانبر اجرا بشه در رویداد Onkeydown فرم هم گذاشتم عمل نکرد.

متشکرم

vcldeveloper
یک شنبه 08 شهریور 1388, 17:43 عصر
خب، این چه ربطی به IDE دلفی داره؟!! تاپیک منتقل شد.


توی سایت کلید ها ی میانبر و Hot key رو سرچ کردم ولی چیز بدرد بخوری پیدا نکردم.
Hot key نه، بلکه باید Hotkey را در تالار دلفی جستجو کنید.

ictboy
دوشنبه 09 شهریور 1388, 13:59 عصر
بله . حق با شما. واقعا جای تاسف داره.

با جستجوی Hotkey یک موضوع بحث شده بود که اون هم به نتیجه ای نرسیده بود.
قبلا هم گفتم برای کلید های سیستمی صفحه کلید مثل کلید های تابعی می تونم این کار رو انجام بدم ولی کلید ترکیبی تو گزینه های رویداد Onkeydown وجود نداره . همچنین حتما باید روی یک آبجکت خاصی باشی و کد ها رو توی رویداد Onkeydown اون بنویسی تا اجرا بشه.

متشکرم

hadisalahi2
دوشنبه 09 شهریور 1388, 16:58 عصر
دوست عزیز در این توابع یک پارامتر دیگه هم وجودداره به نام ShiftState که با استفاده از اون میتونی بفهمی کاربر کدوم یکی از کلید های Shift,Ctrl و یا Alt رو نگه داشته ، حالا اگه کد گکلید مورد نظرت رو هم داشته باشی، فقط کافی یک if بگذاری و دو تا کلیدی رو که میخوای مقایسه کنی به هم And کنی.

Mahmood_M
دوشنبه 09 شهریور 1388, 21:42 عصر
این مقالات می تونه مفید باشه :

استفاده از ActionList (http://barnamenevis.org/forum/showthread.php?p=475312)
Understanding and Processing Keyboard events in Delphi (http://barnamenevis.org/forum/showthread.php?t=60326)

موفق باشید ...

ictboy
یک شنبه 15 شهریور 1388, 07:56 صبح
با سلام خدمت تمامی دوستان گرامی

از تمامی عزیزانی که راهنمایی کردن ممنون هستم.

نتیجه راهنمایی های دوستان را در یک مثال ساده اینجا گذاشتم.


مثال: 36451

ictboy
چهارشنبه 18 شهریور 1388, 15:05 عصر
با سلام
یک مشکل:
من در برنامه از Pagecontroller استفاده کردم و تمام فرم های برنامه زمان Show شدن داخل یک Tabsheet باز می شوند. مشکل اینجاست که چون فرمم داخل Tabsheet باز میشه دیگر رویداد Onkeydown فرم اجرا نمی شه. Pagecontroller هم رویداد های key نداره. حالا چه باید کرد؟؟؟؟؟
متشکرم.

vcldeveloper
چهارشنبه 18 شهریور 1388, 22:44 عصر
شکل اینجاست که چون فرمم داخل Tabsheet باز میشه دیگر رویداد Onkeydown فرم اجرا نمی شه. Pagecontroller هم رویداد های key نداره. حالا چه باید کرد
خصوصیت KeyPreview فرم را True کنید.

ictboy
شنبه 21 شهریور 1388, 14:17 عصر
جناب کشاورز سلام

خاصیت KeyPreview فرم True است . ولی Keydown درست کار نمی کنه