ITVcentralServer:NewMessage
Aus Sceneo Wiki
Mit der NewMessage Funktion kann ein neues IMesssageItem Objekt erzeugt werden, welches dann über das TVC Messaging-System versendet werden kann. Der erste Parameter ist die Nachricht selber. Sie setzt sich aus mehreren durch "." getrennten Abschnitten zusammen. Eine Nachricht an ein anderes PlugIn fängt immer mit "plugin." an, gefolgt vom in der entsprechenden TVC-Plugin-Datei festgelegten Namen. Abschliessend kann dann die eigentliche Nachricht angehängt werden.
In Beispiel 1 wird die Nachricht "open" an das "imagemodule"-PlugIn gesendet. Der zweite Funktionsparameter ist ein zusätzlicher anwendungsabhängiger Wert.
Delphi-Beispiel 1
Core.NewMessage('plugin.imagemodule.open','myvalue').Send;
Zusätzliche Argumente können in der Nachricht übermittelt werden indem man, wie in Beispiel 2 gezeigt, dass Values Attribut des Message-Objekts verwendet.
Delphi-Beispiel 2
var
msgNew : IMessageItem;
msgNew := Core.NewMessage('plugin.imagemodule.open','myvalue');
s := msg.Values['database'];
msgNew.Values['database'] := msg.Values['database'];
msgNew.Values['view'] := msg.Values['view'];
msgNew.Values['startmode'] := 'views';
msgNew.Send;
In besonderen Fällen kann es notwendig sein die Nachrichtenübermittlung, die im Allgemeinen über direkte Funktionsaufrufe der Execute-Funktion des jeweiligen PlugIns geschieht, zu entkoppeln. Hierzu ist das zusätzliche Prefix "thread." gedacht.
Delphi-Beispiel 3
Core.NewMessage('thread.plugin.imagemodule.open','myvalue').Send;
Die in den vorangegangenen Beispielen versendete Nachicht könnte in der Execute-Methdoe des Ziel-PlugIn wie folgt abgefragt werden:
Delphi Beispiel 4
if msg.IsMessage('open') then begin
sValue := msg.Value;
sValDatabase := msg.Values['database'];
...
end;
