Delphi Список дій TActionList, Delphi, компоненти Delphi, вихідні коди Delphi

Delphi: Список дій TActionList

Щоб зрозуміти, для чого потрібен компонент, достатньо уважно розглянути його назву, яку можна перекласти як список дій. Компонент зберігає список дій, які можна використовувати у програмі. А навіщо вони потрібні у вигляді списку?

Припустимо, що якась подія може викликатися з кількох місць програми або різних компонентів. Класичний приклад — пункт меню та кнопка, що дублює, в панелі завдань. У більшості програм є панель завдань, в якій є кнопки, що дублюють дії меню. Ви можете і пункту меню і кнопці призначити той самий обробник події, але керувати цим буде все одно не так зручно. Набагато краще буде створити дію Action у списку ActionList та призначити його кнопці та пункту меню.

Давайте створимо приклад, який використовуватиме дії. Створіть нову програму та помістіть на неї компонент ActionList. Зауважте, що він виглядає як прямокутник з іконкою, і такий компонент не буде видимим під час виконання програми. Список дій не повинен бути видно, тому цей клас походить не від TControl, а від TComponent.

  • створення нової дії;
  • видалити виділену дію;
  • підняти виділення на одну позицію вгору;
  • опустити виділення на одну позицію вниз.

Останні дві кнопки використовуються для впорядкування дій і для естетичних цілей.

Отже, створимо нову дію. Для цього можна натиснути кнопку на панелі завдань або просто натиснути клавішу . Виділіть створену дію та подивіться в об'єктний інспектор. Тут ми маємо наступні дії:

Давайте назвемо дію Вихід, а на вкладці Events створимо обробникподії onExecute і напишемо в ньому всього один рядок - виклик методу close().

Тепер у властивості shortcut напишіть Esc, тобто гарячою кнопкою буде кнопка . Вже зараз ви можете запустити програму, натиснути і відповідна подія спрацює, і буде викликаний метод close (). І це незважаючи на те, що дія ще нічого не була призначена.

Тепер спробуємо помістити на форму кнопку TButton і як Action вказати ім'я створеного вами раніше дії. Зауважте, що заголовок кнопки автоматично зміниться. Зворотна дія також працює. Якщо змінити властивість Caption у дії, зміниться заголовок у всіх компонентів, яким призначено дію. Це дуже зручно – з одного контейнера дій керувати ними, змінювати заголовки, гарячі клавіші, обробку повідомлення тощо.