Programmazione dei menu di scelta rapida - TIA Portal

Introduzione al TIA Portal

ft:publication_title
Introduzione al TIA Portal
Product
TIA Portal
Version
V21
Publication date
11/2025
Language
it-IT
Programmazione dei menu di scelta rapida

Procedura

Per programmare i menu di scelta rapida procedere nel seguente modo:

  1. Creare una nuova classe nel progetto e assegnarle un nome significativo.

  2. Inserire nella classe le seguenti direttive using:

    • using Siemens.Engineering.AddIn.Base;

    • using Siemens.Engineering.AddIn.Base.Menu;

    • using Siemens.Engineering.Base;

  3. Se necessario inserire ulteriori direttive using.

  4. Dichiarare la classe come sottoclasse di "ContextMenuAddIn":

    class CustomerContextMenu : ContextMenuAddIn

  5. Inserire nella classe il seguente metodo:

    public CustomerContextMenu(string displayName) : base(displayedAddinName)

    {

    }

    Con la variabile String "displayedAddinName" si inoltra il titolo dell'Add-In al costruttore della classe di base. "displayedAddinName" può essere definito con qualsiasi altro nome.

  6. Inserire nella classe il seguente metodo:

    protected override void BuildContextMenuItems(ContextMenuAddInRoot addInRootSubmenu)

    {

    }

  7. Inserire il pulsante del menu di scelta rapida senza icone nel metodo:

    addInRootSubmenu.Items.AddActionItem<IEngineeringObject> ("<Testo della voce del menu di scelta rapida>", Entry1_OnClick);

  8. In alternativa, per gli Add-Ins creati con TIA Portal V20 o superiore è possibile utilizzare il seguente metodo per inserire pulsanti con icone nel menu di scelta rapida:

    addInRootSubmenu.Items.AddActionItemWithIcon<IEngineeringObject>("<Testo della voce del menu di scelta rapida>", ResourceName.IconName, Entry1_OnClick);

    In questo metodo, il secondo parametro contiene le informazioni sull'icona, di tipo "System.Drawing.Icon". Queste possono essere trasferite come risorse di icone, che vengono salvate in un file di risorse (“.resx”) nel progetto.

  9. Ripetere l'operazione 7 o 8 per tutte le voci richieste del menu di scelta rapida. Quando si usa il metodo OnClick accertarsi di richiamare ogni volta, per la voce del menu, un singolo metodo proprio.

  10. Il codice eseguibile per i pulsanti può essere creato direttamente nei metodi OnClick oppure generando ulteriori classi e richiamandole nei metodi OnClick.

Esempio di programmazione di un menu di scelta rapida

Il seguente esempio illustra il codice di programma completo per un menu di scelta rapida:

Copia il codice di programma seguente negli Appunti.

using Siemens.Engineering.AddIn.Base;

using Siemens.Engineering.AddIn.Base.Menu;

using Siemens.Engineering.Base;

namespace Addin_Test

{

public class CustomerContextMenu : ContextMenuAddIn

{

public CustomerContextMenu(string displayName) : base(displayedAddinName)

{

}

protected override void BuildContextMenuItems(Submenu addInRootSubmenu)

{

addInRootSubmenu.Items.AddActionItem<IEngineeringObject>("Entry 1", Entry1_OnClick);

addInRootSubmenu.Items.AddActionItem<IEngineeringObject>("Entry 2", Entry2_OnClick);

//Per gli Add-Ins creati con TIA Portal V20 o superiore è possibile utilizzare il seguente metodo per aggiungere un menu con un'icona. Il secondo parametro è di tipo "System.Drawing.Icon".

addInRootSubmenu.Items.AddActionItemWithIcon<IEngineeringObject>("Entry 3", Resource1.Icon1, Entry3_OnClick);

}

private void Entry1_OnClick(MenuSelectionProvider<IEngineeringObject> menuSelectionProvider)

{

//Codice di programma eseguito per la prima voce del menu di scelta rapida

}

private void Entry2_OnClick(MenuSelectionProvider<IEngineeringObject> menuSelectionProvider)

{

//Codice di programma eseguito per la seconda voce del menu di scelta rapida

}

private void Entry3_OnClick(MenuSelectionProvider<IEngineeringObject> menuSelectionProvider)

{

//Codice di programma eseguito per la seconda voce del menu di scelta rapida con icona

}

}

}

Add-Ins in più lingue

A partire da TIA Portal V20 gli Add-Ins sono in grado di riconoscere la lingua attuale dell'interfaccia utente di TIA Portal. I menu contestuali degli Add-Ins possono essere quindi visualizzati nella stessa lingua degli altri elementi dell'interfaccia utente di TIA Portal, in modo che gli utenti possano comprendere meglio i menu contestuali nella lingua che hanno scelto.

Il costruttore dell'Add-Ins ha un parametro aggiuntivo per le informazioni di TIA Portal relative alla cultura:

public ProjectTree1ContextMenuAddIn(TiaPortal tiaPortal, CultureInfo tiaUICultureInfo, ResourceManager resourceManager) :

base(resourceManager.GetString("<Name Of Main Menu>", tiaUICultureInfo))

{

m_TiaPortal = tiaPortal;

m_CultureInfo = tiaUICultureInfo;

m_ResourceManager = resourceManager;

}

Le informazioni sulla cultura possono essere utilizzate nel codice per recuperare dal file delle risorse stringhe localizzate in base alla cultura specifica, come è pratica comune nella normale programmazione C#. Le stringhe provengono dai file delle risorse che vengono inclusi nello stesso Add-In.

Le informazioni sulla cultura possono essere ad es. utilizzate per recuperare dal file delle risorse un messaggio localizzato in base a una cultura specifica e utilizzarlo per denominare il menu di azioni dell'Add-In:

protected override void BuildContextMenuItems(ContextMenuAddInRoot addInRootSubmenu)

{

var m_TestContextMenuResourceManager = new ResourceManager("TestAssemblyName.ResourceFileName", Assembly.GetExecutingAssembly());

addInRootSubmenu.Items.AddActionItem<IEngineeringObject>(m_TestContextMenuResourceManager.GetString("TestMessage", m_CultureInfo), OnDoSomething1);

}

Allo stesso modo questo può essere utilizzato anche per i nomi dei workflow e i messaggi di feedback che vengono registrati dall'Add-In.