尝试在我的项目中实现Notifications时,Delphi Seattle无法正确引用FMX.Notification
。
这是我得到的:
[DCC致命错误] UnitMain.pas(27):F2613找不到单元'FMX.Notification'。
然后,它会自动引用System.Notification
,但是,当尝试使用此类中的对象时,它会使我的Android应用程序崩溃。
如何在Delphi Seattle上正确实现通知?
注意:它必须同时在iOS
和Android
上运行。
最佳答案
根据Embarcadero's official Seattle changes:
FMX.Notification单元已被System.Notification
代替。TNotificationCenter
组件现在支持Windows 8和更高版本的Windows。此组件也进行了一些小的更改:
ApplicationIconBadgeNumber
的类型已从Word更改为Integer。 Supported
方法,并且已将其删除。 TBaseNotificationCenter
类已替换IFMXNotificationCenter
接口。用于实现IFMXNotificationCenter
接口的类必须成为TBaseNotificationCenter
的子类,并实现其父类的虚拟抽象方法。因此,我想出了现在要显示通知的方式:
procedure TForm_Master.showNotification(Sender: TObject);
var
MyNotification: TNotification;
begin
MyNotification := NotificationCenter1.CreateNotification;
try
MyNotification.Name := 'NotificationName';
MyNotification.AlertBody :=
'Here goes your message';
MyNotification.FireDate := Now;
// Send notification to the notification center
NotificationCenter1.ScheduleNotification(MyNotification);
finally
MyNotification.Free;
end;
end;