PDA

View Full Version : سوال: در مورد ActionList



سیروس مقصودی
پنج شنبه 30 آذر 1391, 13:42 عصر
با سلام

من روی فرم برنامه ام یک ActionList قرار داده ام و میخواهم از طریق کد نویسی به Actionlist مورد نظر تعدادی Action اضافه کنم و باز از طریق کد نویسی به قسمت Execute آن Actionها عملی را که میخواهم انجام دهد اضافه کنم و قسمت Shortcut را از طریق کد نویسی میخواهم بصورت انتخابی باشد . من میخواهم در برنامه ام کاربر خودش انتخاب کند مثلا کلید Ctrl+B را به منوی صدور سند اختصاص دهد .

با تشکر ...

Felony
شنبه 02 دی 1391, 15:23 عصر
به فرض که یه آیتم ایجاد کردی ، این کار رو چطور میخوای انجام بدی ؟ :


از از طریق کد نویسی به قسمت Execute آن Actionها عملی را که میخواهم انجام دهد اضافه کنم

همچین کاری امکان پذیر نیست ، هدفت از این کار چیه ؟ میخوای چی کار کنی ؟

سیروس مقصودی
یک شنبه 03 دی 1391, 07:15 صبح
در برنامه ای که نوشته ام منوهای زیادی وجود داد من میخواهم این امکان را به کاربر بدهم که کاربر بتواند برای منوهایی که برایش زیاد کاربرد دارد یک کلید میانبر تعریف کند تابتواند بجای اینکه از طریق موس منوی مورد نظر را انتخاب کند با زدن مثلا کلید Ctyrl+S (البته تعریف این کلید Ctrl+S توسط کاربر انجام شود مثلا یک کاربر Ctrl+S را بر منوی صدور سند انتخاب میکند و دیگری برای همان منو کلید Ctrl+Z را انتخاب میکند ) آن منو را اجرا کند

Felony
یک شنبه 03 دی 1391, 07:57 صبح
خوب این چه نیازی به اون دردسرها داشت ؟!

نوع کلید میانبر منوها TShortcut هست ، از توابع ShortcutToText و TextToShortcut از کتابخانه Menus برای ذخیره یک Shortcut در دیتابیس یا ... و بارگذاری اون استفاده کنید .

توسط کامپوننت Hotkey دلفی هم میتونید برای دریافت یک Hotkey جدید توسط کاربر اقدام کنید ، متد Hotkey از این کامپوننت حاوی کلید ترکیبی وارد شده توسط کاربر هست که از نوع TShortcut میباشد و با توابع بالا میتونید داخل دیتابیس یا یک فایل ، میانبر مورد نظر برای هر منو رو ذخیره و موقع اجرای برنامه بار کنیدشون .

موفق باشید .

سیروس مقصودی
دوشنبه 04 دی 1391, 10:32 صبح
با تشکر از آقا ماهان
من دستور زیر را نوشتم
MainMenu1.Items.Find('menu1').Find('menu11').Short Cut := TextToShortCut('Ctrl+A')
ولی پیغام زیر ظاهر شد

Felony
دوشنبه 04 دی 1391, 10:40 صبح
کد به صورت کلی مشکلی نداره ، دقت کنید که متد Find دنبال عنوان ( Caption ) منوها میگرده نه اسمشون ، احتمالا شما اسم منو رو به جای عنوانش دارید جستجو میکنید و برنامه نمیتونه همچین عنوانی در منوها پیدا کنه ، بعدش هم برای همچین کدهایی باید یک روند کنترل پیاده کنید تا اگر مثلا منو پیدا نشد سعی به دسترسی به متدهاش نکنید که با AV رو به رو بشید .