Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi NotificationCenter und deren Funktion (https://www.delphipraxis.net/192736-notificationcenter-und-deren-funktion.html)

Ghostwalker 16. Mai 2017 06:03

NotificationCenter und deren Funktion
 
Hi,

ich experimentiere grad ein wenig mit dem TNotificationCenter rum und stosse dabei auf folgende Probleme:

Basiscode sieht so aus (direkt aus der Demo geholt):

Delphi-Quellcode:
var
  MyNotification: TNotification;
begin
  MyNotification := NotificationCenter1.CreateNotification;
  try
    MyNotification.Name := 'Windows Notification';
    MyNotification.Title := 'My first Notification';
    MyNotification.AlertBody := 'Notification send by my application.';
    MyNotification.FireDate := Now()+EncodeTime(0,0,10,0);
    NotificationCenter1.PresentNotification(MyNotification);
  finally
    MyNotification.Free;
  end;
end;
Soweit funktionierts auch, die Nachricht wird sofort angezeigt.

mach ich nun aus

Delphi-Quellcode:
   
NotificationCenter1.PresentNotification(MyNotification);
Delphi-Quellcode:
    NotificationCenter1.ScheduleNotification(MyNotification);
wars das. Die Nachricht wird nicht angezeigt (nach 10 Sekunden sollte sie das eigentlich).

Auch einen eigenen Sound bekomme ich nicht ans laufen, obwohl ich mich hier
an diese Tut gehalten hab: http://docwiki.embarcadero.com/RADSt...fication_Sound

Weder mit mp3 noch mit wav, egal was ich für einen Pfad angebe.....

Hat jemand hier evtl. den ein oder anderen Tip ?

haentschman 16. Mai 2017 06:12

AW: NotificationCenter und deren Funktion
 
Moin...:P
Zitat:

NotificationCenter1.ScheduleNotification(MyNotific ation)
...Vieleicht vor dem finally deines Beispieles und du räumst dann die Notification weg? :gruebel:
Zeig mal den kompletten Zusammenhang...

himitsu 16. Mai 2017 07:08

AW: NotificationCenter und deren Funktion
 
Zitat:

Zitat von haentschman (Beitrag 1371545)
und du räumst dann die Notification weg? :gruebel:

Delphi-Quellcode:
MyNotification.Free;

Daran hätte ich auch als Erstes gedacht.

Einfach mal nicht löschen und schauen was passiert.

haentschman 16. Mai 2017 07:13

AW: NotificationCenter und deren Funktion
 
In der Dokumentation habe ich nichts finden können, wie mit der Freigabe der Objekte umgegangen wird. :roll: Im Emba Beispiel wird die Notification (PresentNotification) weggeräumt.
Gefühlt sollte sich die NotificationCenter Liste selbst um die Freigabe kümmern. :roll:

himitsu 16. Mai 2017 07:26

AW: NotificationCenter und deren Funktion
 
Es kommt halt drauf an.

Wird das auch bei Windows deregistriert, wenn man das Objekt löscht, dann ist es ja wieder weg und kann nicht mehr angezeigt werden.
Es wäre ja auch praktisch, wenn man weiterhin eine Verbindung zum Windows hat, um die Notification abbrechen zu können, wenn man sie dann doch nicht mehr anzeigen will.

Würde dagegen durch ScheduleNotification in Windows nur ein neuer Eintrag (Kopie ) gemacht und der wird nicht gelöscht/entfernt/Cancel/..., wenn man das Objekt freigibt, dann kann man das Free auch machen.

Drum ja einfach mal ausprobieren, ob es schon hilft, wenn man nicht löscht.



Das
Delphi-Quellcode:
MyNotification.Name := 'Windows Notification';
ist schonmal kein TComponent.Name ? (wegen dem Leerzeichen, was da nicht erlaubt wäre)
Da könnte man nun auf die Idee kommen, dass es sowas wie eine ID sein könnte, mit der man später nochmal drauf zugreifen könnte, wenn man das Objekt zwischendurch gelöscht hätte und ein Neues erstellt. :gruebel:

haentschman 16. Mai 2017 07:33

AW: NotificationCenter und deren Funktion
 
Im Emba FMX Beispiel wird auch beim Schedule das Objekt weggeräumt (über die Referenzzählung)...
Delphi-Quellcode:
procedure TNotificationsForm.btnSendScheduledNotificationClick(Sender: TObject);
var
  Notification: TNotification;
begin

{ verify if the service is actually supported }
  Notification := NotificationC.CreateNotification;
  try
    Notification.Name := 'MyNotification';
    Notification.AlertBody := 'Delphi for Mobile is here!';

    { Fired in 10 second }
    Notification.FireDate := Now + EncodeTime(0,0,10,0);

    { Send notification in Notification Center }
    NotificationC.ScheduleNotification(Notification);
  finally
    Notification.DisposeOf;
  end;
end;
...dann ich bin hier leider raus. :?

Der schöne Günther 16. Mai 2017 08:15

AW: NotificationCenter und deren Funktion
 
Möglichkeit 1: Du schaust in den Quelltext und siehst dass du mit
Delphi-Quellcode:
ScheduleNotification(..)
nur eine leere Methode aufrufst.

Möglichkeit 2: Du schaust in die Doku und siehst dass keine Plattform alles unterstützt. Windows hat vom RAD Studio leider den wenigsten Support.

Über die WinRT-API sollte es aber gehen.

Ghostwalker 16. Mai 2017 08:37

AW: NotificationCenter und deren Funktion
 
Ob ich das nu freigebe oder nicht, spielt überhaupt keine Rolle. Es wird schlicht nicht angezeigt.

Der Name der Notification ist in der Tat eine Art ID. Sie wird benötigt, wenn man das ganze über Cancel wieder ansprechen will.



Hab inzwischen weiter geforscht und eine Platform-Übersicht gefunden. Was soll ich sagen, das ganze (also Shedule usw.) wird unter Windows nicht unterstützt. :(

himitsu 16. Mai 2017 09:07

AW: NotificationCenter und deren Funktion
 
Man stelle sich mal vor wie die Fehlersuche verlaufen würde, käme jemand auf die irrsinnige Idee in einer nichtfunktionierenden Methode auch eine passende Fehlerbehandlung auszulösen. :roll:

Ghostwalker 16. Mai 2017 12:01

AW: NotificationCenter und deren Funktion
 
Naja...man hät durchaus mal eine Fehlermeldung implementieren können. Dann weiß man zumindest das was panne läuft, aber so gar keine Reaktion......


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:05 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz