Mit diesem Beispiel wird demonstriert wie ein dynamisches Menü erzeugt werden kann.
Vielen Dank an S.Brenner für die Umsetzung!
Im Beispielvideo ist zu sehen wie sich die Menüpunkte verändern.
DynamicMenu - Video (1653 Downloads )
DynamicMenu (1219 Downloads )
/*
NAME....: MenuDemoRemoveEntry
USAGE...: for EPLAN P8 (v2.09)
AUTHOR..: S.Benner / BeDaSys
VERSION.: 2011-05-11
FUNC....: Demonstriert das dynamische Hinzufügen und Entfernen von Menüeinträgen per Script in EPlan P8
*/
//
using Eplan.EplApi.Scripting;
public class MenueHinzufuegen
{
// Deklarationen
// -------------------------------------------------
public static uint hndHMenu = new uint(); // Variable für die ID des Hauptmenüs
public static uint hndMenuEntryL = new uint(); // Variable für die ID des 2ten Eintrages
public static uint hndMenuEntryR = new uint(); // Variable für die ID des 3ten Eintrages
public Eplan.EplApi.Gui.Menu DemoHauptMenue = new Eplan.EplApi.Gui.Menu(); // Das Menüobjekt
//
// Anlegen der Aktionen für die Menüpunkte
// -------------------------------------------------
//
// Action: Umschalten auf LINKS
[DeclareAction("actLinks")]
public void actLinks()
{
// Meldung ausgeben
System.Windows.Forms.MessageBox.Show("Schalte um auf LINKS");
// Menüeintrag "Links" entfernen
DemoHauptMenue.RemoveMenuItem(hndMenuEntryL);
// MenüeintragsID auf 0 setzen
hndMenuEntryL = 0;
// Menüeintrag "Rechts" hinzufügen falls er nicht vorhanden ist
if (hndMenuEntryR == 0) {
hndMenuEntryR = DemoHauptMenue.AddMenuItem( // .AddMenuItem(
"Rechts", //Eintragsname,
"actRechts", // Eintragsaktion,
"Hiermit schalte ich um auf Rechts",// Statustext,
hndHMenu, // Menü-ID,
1, // Eintragsposition(1= hinten bzw 0= vorne),
false, // TrennerDavor,
false); // TrennerDanach);
}
}
//
// Umschalten auf RECHTS
[DeclareAction("actRechts")]
public void actRechts()
{
// Meldung ausgeben
System.Windows.Forms.MessageBox.Show("Schalte um auf RECHTS");
// Menüeintrag "Rechts" entfernen
DemoHauptMenue.RemoveMenuItem(hndMenuEntryR);
// MenüeintragsID auf 0 setzen
hndMenuEntryR = 0;
// Menüeintrag "Links" hinzufügen falls er nicht vorhanden ist
if (hndMenuEntryL == 0) {
hndMenuEntryL = DemoHauptMenue.AddMenuItem( // .AddMenuItem(
"Links", //Eintragsname,
"actLinks", // Eintragsaktion,
"Hiermit schalte ich um auf LINKS",// Statustext,
hndHMenu, // Menü-ID,
1, // Eintragsposition(1= hinten bzw 0= vorne),
false, // TrennerDavor,
false); // TrennerDanach);
}
}
//
// Umschalten auf Links & Rechts
[DeclareAction("actLinksRechts")]
public void actLinksRechts()
{
// Meldung ausgeben
System.Windows.Forms.MessageBox.Show("Schalte um auf Links & Rechts");
// Menüeintrag "Links" hinzufügen falls er nicht vorhanden ist
if (hndMenuEntryL == 0) {
hndMenuEntryL = DemoHauptMenue.AddMenuItem( // .AddMenuItem(
"Links", //Eintragsname,
"actLinks", // Eintragsaktion,
"Hiermit schalte ich um auf LINKS",// Statustext,
hndHMenu, // Menü-ID,
1, // Eintragsposition(1= hinten bzw 0= vorne),
false, // TrennerDavor,
false); // TrennerDanach);
}
// Menüeintrag "Rechts" hinzufügen falls er nicht vorhanden ist
if (hndMenuEntryR == 0) {
hndMenuEntryR = DemoHauptMenue.AddMenuItem( // .AddMenuItem(
"Rechts", //Eintragsname,
"actRechts", // Eintragsaktion,
"Hiermit schalte ich um auf Rechts",// Statustext,
hndHMenu, // Menü-ID,
1, // Eintragsposition(1= hinten bzw 0= vorne),
false, // TrennerDavor,
false); // TrennerDanach);
}
}
//
// Anlegen des Menüs
// -------------------------------------------------
[DeclareMenu]
public void MenuFunction()
{
// Hauptmenü inkl Eintrag "Links und Rechts"
hndHMenu = DemoHauptMenue.AddMainMenu( // .AddMainMenu(
"Demo L/R Umschaltung", // Menüname,
"Fenster", // RechtsNebenMenüName,
"Links und Rechts", // Eintragsname,
"actLinksRechts", // Eintragsaktion,
"Umschaltung auf Links & Rechts", // Statustext,
1); //Eintragsposition(1= hinten bzw 0= vorne)
hndMenuEntryL = DemoHauptMenue.AddMenuItem( // .AddMenuItem(
"Links", //Eintragsname,
"actLinks", // Eintragsaktion,
"Hiermit schalte ich um auf LINKS",// Statustext,
hndHMenu, // Menü-ID,
1, // Eintragsposition(1= hinten bzw 0= vorne),
false, // TrennerDavor,
false); // TrennerDanach);
hndMenuEntryR = DemoHauptMenue.AddMenuItem( // .AddMenuItem(
"Rechts", //Eintragsname,
"actRechts", // Eintragsaktion,
"Hiermit schalte ich um auf Rechts",// Statustext,
hndHMenu, // Menü-ID,
1, // Eintragsposition(1= hinten bzw 0= vorne),
false, // TrennerDavor,
false); // TrennerDanach);
}
}
Hinterlasse einen Kommentar