Taskbar buttons

Пост шпаргалка. Якщо ви власникDelphi XE6 абоDelphi XE7, вам не потрібно робити якихось хитрих рухів тіла, для того, створення кнопок на панелі, що відповідає додатку вTaskBar ' е. Ви можете скористатися компонентомTTaskBar і таким чином вирішити всі проблеми. Але, що робити, користувачам Delphi попередніх версій (принагідно нагадаю, що при покупці останньої версії Delphi ви отримуєте ключі до всіх попередніх версій, починаючи з Delphi 7)?

У Боба Сворта є докладний солюшн, але я знайшов у ньому деякі неточності. Нижче наведу свою, трохи модифіковану версію цього рішення.

Створення TaskbarList а нічим особливо не відрізняється. Цей код буде працювати і вWindows 7 іWindows 8 :

Звичайно, попередньо потрібно перевірити версію Windows (вона повинна бути не нижче 7). Я роблю це так само, як і Dr. Bob:

В надії на те, що в наступних версіях Windows цей функціонал нікуди не подінеться. Нижче наведено значення змінних для існуючих версій системи.

Win32MajorVersionWin32MinorVersion
6
  • Windows 8 (версія 6.2)
  • Windows 7 (версія 6.1)
  • Windows Vista (версія 6.0)
5
  • Windows XP (версія 5.1)
  • Windows 2000 (version 5.0)

Я описав його так:

Відповідно, кнопки я створюю таким чином:

Значення прапорів, що називається “dwFlags”, не буду їх перераховувати, для цього є документація.

Як ви, мабуть, вже здогадалися, тут я реалізував кнопки таймера. Обробник події натискання кнопок можна реалізувати так. як і базовому прикладі (відловити повідомлення WM_COMMAND). У демонстраційному прикладі він у менеспрацював, а ось у реальному додатку – чомусь ні. Мабуть, десь щось перекривається. Я не надто засмутився цим фактом, і використовував подію OnMessage компонентаApplicationEvents.