Scopo
Invia un messaggio all'applicazione ed a tutti i componenti i maniera ricorsiva. Tale procedura può essere utile per inviare un messaggio ad uno o più componenti o a tutta la gerarchia. Per esempio può essere utile per comunicare l'istanza del Document Helper, creato dall'applicazione, a tutta la gerarchia dei componenti per fare in modo che tutti utilizzino la stessa istanza.
Sintassi
Applicazione.SendAppMessage(Message, Parameter)
Argomenti
Message | Nome del messaggio |
Parameter | E' un parametro di tipo oggetto che contiene le informazioni relative al messaggio inviato. Tale parametro viene fornito nell'evento OnAppMessage |
Esempio di codice
// **************************************************************
// An event fired by the application when it is initialized
// **************************************************************
event Application.Initialize()
{
DocumentHelper dh = new()
NPQ04788App.sendAppMessage("DocHelper", dh)
}
// **************************************************************
// Fired by the application and by a component when someone, application or component, used the SendAppMessage method
// **************************************************************
event Component1.OnAppMessage(
string Message // Message name
object Parameter // Object parameter that contains the info relevant to the message. This parameter is the same that was provided, by the sender, to the SendAppMessage method
)
{
if (Message == "DocHelper")
Component1.documentHelper = cast(Parameter)
}
// An event fired by the application when it is initialized
// **************************************************************
event Application.Initialize()
{
DocumentHelper dh = new()
NPQ04788App.sendAppMessage("DocHelper", dh)
}
// **************************************************************
// Fired by the application and by a component when someone, application or component, used the SendAppMessage method
// **************************************************************
event Component1.OnAppMessage(
string Message // Message name
object Parameter // Object parameter that contains the info relevant to the message. This parameter is the same that was provided, by the sender, to the SendAppMessage method
)
{
if (Message == "DocHelper")
Component1.documentHelper = cast(Parameter)
}
Ultima modifica: 20/11/2020 / Validità: da 20.5.8000
- Il sistema, da dovunque venga inviato il messaggio, segue sempre la stessa sequenza: applicazione, componenti utilizzati dall'applicazione, componenti figli dei componenti utilizzati dall'applicazione e così via.
- Se il messaggio viene inviato da un componente, il sistema lo comunicherà prima all'applicazione poi a tutta la gerarchia, compreso il componente che ha inviato il messaggio.
-
Il secondo parametro del metodo è di tipo oggetto quindi non è possibile inviare tipi "base" (stringhe, date, interi). Qualora fosse necessario inviare dati "base" è sufficiente inserirli in un array:
public void SendMessage() { IDArray arr = new (); arr.addValue("Parametro del messaggio"); Componenti.sendAppMessage("NomeMessaggio", arr); } public event OnAppMessage(Message, Parameter) { if (Message == "NomeMessaggio") { IDArray arr = Parameter string Testo = arr.getValue(0) } }