Компонент TNotificationCenter появился в Delphi 10 Seattle. Этот компонент предоставляет доступ к центру уведомлений в Windows, Android, OS X и iOS. Следует отметить, что TNotificationCenter для Windows может использоваться только в Windows 8 и выше.
Основная информация по компоненту | ||
Вкладка палитры компонентов | System | |
Исходник официального примера и документация | DocWiki |
Этот демонстрационный пример показывает использование компонента TNotificationCenter в Windows.
На главной форме приложения расположены следующие компоненты:
- NotificationCenter1: компонент TNotificationCenter;
- btnShow: TButton — вызывает показ первого уведомления;
- btnCancel: TButton — отменяет показ первого уведомления;
- btnCancelAll: TButton — отменяет показ всех уведомлений;
- btnShowAnother: TButton — вызывает показ второго уведомления;
- btnCancelAnother: TButton — отменяет показ второго уведомления;
- mmLog: TMemo — лог для показа работы событий компонента TNotificationCenter.
Внешний вид демонстрационного приложения представлен на рисунке ниже:
Использование компонента
RAD Studio предоставляет компонент TNotificationCenter для управления уведомлениями на нескольких устройствах.
Центр уведомлений (TNotificationCenter), позволяет отправлять сообщения из запущенных приложений. Приложения могут использовать уведомления, чтобы проинформировать пользователя о чем-либо.
Компонент TNotification — это сообщение, которое приложение отправляет в центр уведомлений для отображения в области уведомлений в соответствии с платформой. Так, например, иконка центра уведомлений в Windows 10 располагается в нижнем правом углу экрана, там же и будут появляться Ваши уведомления.
В Windows для компонента TNotification вы можете использовать следующие свойства:
- TNotification.Name — уникальный идентификатор уведомления;
- TNotification.AlertBody — сообщение, которое будет показано пользователю;
- TNotification.Title — заголовок сообщения;
Для уведомлений в других операционных системах возможно использование ещё нескольких свойств в зависимости от того в какой ОС вы работаете. Например, вы можете назначить определенный звук на показ уведомления, запланировать перезапуск и т.д.
Демонстрационный пример
В приложении демонстрируется создание нового уведомления, его показ пользователю и скрытие из центра уведомлений. Прежде всего, т.к. центр уведомлений Windows доступен только с версии Windows 8 необходимо проверить на какой платформе запускается приложение и, при необходимости выдать пользователю сообщение о том, что TNotificationCenter не будет работать на его платформе. В примере это делается следующим образом:
procedure TNotificationsForm.FormShow(Sender: TObject); begin OnShow := nil; {$IFDEF MSWINDOWS} if not TOSVersion.Check(6, 2) then // Windows 8 begin ShowMessage('This demo is designed to show Notification feature in Windows 8 or higher. Bye.'); Application.Terminate; end; {$ENDIF MSWINDOWS} end;
Показ нового уведомления в «Центре уведомлений» Windows осуществляется следующим образом:
procedure TNotificationsForm.btnShowClick(Sender: TObject); var MyNotification: TNotification; begin MyNotification := NotificationCenter1.CreateNotification; try MyNotification.Name := 'Windows10Notification'; MyNotification.Title := 'Windows 10 Notification #1'; MyNotification.AlertBody := 'RAD Studio 10 Seattle'; NotificationCenter1.PresentNotification(MyNotification); finally MyNotification.Free; end; end;
Скрытие уведомления из TNotificationCenter:
procedure TNotificationsForm.btnCancelClick(Sender: TObject); begin NotificationCenter1.CancelNotification('Windows10Notification'); end;
И, наконец, вызов события при клике по сообщению:
procedure TNotificationsForm.NotificationCenter1ReceiveLocalNotification(Sender: TObject; ANotification: TNotification); begin mmLog.Lines.Add('Notification received: ' + ANotification.Name); end;
Для того, чтобы увидеть пример в действии запустите приложение и нажмите на одну из кнопок показа уведомлений.
При подготовке статьи использовалась информация со следующих ресурсов:
- Официальный репозиторий демострационных примеров Delphi на SourceForge
- Документация по компоненту на сайте Embarcadero
- Информация по работе с компонентом TNotificationCenter на сайте Embarcadero