delphi:system.messaging
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
Beide Seiten, vorherige ÜberarbeitungVorherige Überarbeitung | |||
delphi:system.messaging [2015/03/14 22:39] – mavarik | delphi:system.messaging [2015/03/14 22:41] (aktuell) – mavarik | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
+ | ====== System.Messaging{.pas} ====== | ||
+ | |||
+ | Wie versende ich Programmintern Nachrichten? | ||
+ | |||
+ | Erst mal eine private Nachricht registrieren: | ||
+ | |||
+ | < | ||
+ | type | ||
+ | TDisableAllMessage | ||
+ | </ | ||
+ | |||
+ | Zum Beispiel im Create der Form: | ||
+ | |||
+ | < | ||
+ | DisableMSGID := FMXMessage.SubscribeToMessage(TDisableAllMessage, | ||
+ | | ||
+ | begin | ||
+ | | ||
+ | | ||
+ | | ||
+ | </ | ||
+ | |||
+ | Im Destroy des Forms | ||
+ | |||
+ | < | ||
+ | FMXMessage.Unsubscribe(TDisableAllMessage, | ||
+ | </ | ||
+ | |||
+ | So können sind alle Forms registrieren.. | ||
+ | |||
+ | Benutzt wird es dann so... | ||
+ | |||
+ | < | ||
+ | begin | ||
+ | FMXMessage.SendMessage(sender, | ||
+ | // Mach was tolles | ||
+ | FMXMessage.SendMessage(sender, | ||
+ | end; | ||
+ | </ | ||
+ | |||
+ | oder auch gerne mal im Thread? | ||
+ | |||
+ | < | ||
+ | begin | ||
+ | TTask.Run(Procedure | ||
+ | begin | ||
+ | // bla blub machwas... | ||
+ | |||
+ | TThread.Synchronize(nil,// | ||
+ | | ||
+ | begin | ||
+ | | ||
+ | | ||
+ | |||
+ | // Mach noch was im Hintergrund | ||
+ | | ||
+ | Thread.Queue(nil,// | ||
+ | | ||
+ | begin | ||
+ | | ||
+ | | ||
+ | end); | ||
+ | end; | ||
+ | </ | ||
+ | |||
+ | |||