DynamicMenu
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 (181)
DynamicMenu (70)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 | /* 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); } } |


:biggrin: