уважаемые посетители блога, если Вам понравилась, то, пожалуйста, помогите автору с лечением. Подробности тут.

Компонент TNotificationCenter появился в Delphi 10 Seattle. Этот компонент предоставляет доступ к центру уведомлений в Windows, Android, OS X и iOS. Следует отметить, что TNotificationCenter для Windows может использоваться только в Windows 8 и выше.

Основная информация по компоненту
Вкладка палитры компонентов System
Исходник официального примера и документация SourceForge 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;

Для того, чтобы увидеть пример в действии запустите приложение и нажмите на одну из кнопок показа уведомлений.

При подготовке статьи использовалась информация со следующих ресурсов:

  1. Официальный репозиторий демострационных примеров Delphi на SourceForge
  2. Документация по компоненту на сайте Embarcadero
  3. Информация по работе с компонентом TNotificationCenter на сайте Embarcadero

уважаемые посетители блога, если Вам понравилась, то, пожалуйста, помогите автору с лечением. Подробности тут.