.. highlightlang:: us .. index:: MnInsert .. _mninsert: MnInsert ======== .. us.tag MnInsert GERMAN Menu :ref:`MnInsert` fügt einen Eintrag in ein Menü ein. .. function:: bool = MnInsert(ssMenu, nMenu, nCommandID, ssMenuString) bool = MnInsert(ssMenu, nMenu, nCommandID, ssMenuString, nFlag) bool = MnInsert(ssMenu, nMenu, nItem, nCommandID, ssMenuString) bool = MnInsert(ssMenu, nMenu, nItem, nCommandID, ssMenuString, nFlag) .. us.return **Returnwert** *bool* ist TRUE (1) wenn das Menü-Item eingefügt werden konnte und sonst FALSE (0). .. us.params **Parameter** .. uparam:: ssMenu ist der Name der Menüleiste (menu bar). Es gibt folgende Menüleisten: .. list-table:: :header-rows: 1 * - Wert - Bedeutung * - "Editor" - Dieses Menü wird angezeigt, wenn ein Editor aktiv ist. * - "Document" - Dieses Menü wird angezeigt, wenn ein Dokument mit Diagrammseiten aktiv ist. * - "DocumentServer" - Dieses Menü wird angezeigt, wenn eine UniPlot-Dokumentseite in einem anderen Anwendungsprogramm eingebettet ist (OLE). * - "Command" - Dieses Menü wird angezeigt, wenn das UniScript-Kommandofenster aktiv ist. * - "Main" - Dieses Menü wird angezeigt, wenn keine MDI-Fenster im UniPlot-Hauptfenster vorhanden sind. Das ist normalerweise der Fall nachdem UniPlot gestartet wurde. .. uparam:: nMenu ist die Position des Menüs. Der am weitestens links stehende Eintrag (i. allgem. das Datei-Menü) hat die Position 1. .. uparam:: nItem *nItem* ist die Position des Menüs innerhalb des Menüs *nMenu*. .. uparam:: nCommandID Ist eine Nummer zwischen 1 und 1024, der ein UniScript-Kommando mit der Funktion :ref:`MnSetCommand` zugewiesen werden kann. Eine neue ID liefert die Funktiton :ref:`MnGetNewCommandID`. Falls ein Menüeintrag in eine Hauptmenü eingefügt werden soll, hat *nCommandID* den Wert 0. Beispiel: ``MnInsert("Main", 2, 0, "Mein Menü");`` .. uparam:: ssMenuString *ssMenuString* ist eine Zeichenkette, die wie angegeben im Menü erscheint. Will man einen Buchstaben des Menüeintrags unterstreichen, damit der Menüpunkt leichter mit der Tastatur ausgewählt werden kann, muss vor den Buchstaben ein kaufmännisches Und eingegeben werden, z. B. ``"&Help"``. .. uparam:: nFlag *nFlag* ist einer der folgenden Werte: .. list-table:: :header-rows: 1 * - Wert - Bedeutung * - MF_SEPARATOR - Separator (horizontale Linie). * - MF_MENUBARBREAK - Untermenü. * - MF_MENUBREAK - Menü in neuer Spalte. .. us.comment **Kommentar** Wenn Sie ein Menü erzeugen möchten, erstellen Sie im autoload-Verzeichnis eine ic-Datei. Siehe Beispiel. .. us.example **Beispiel** Zunächst wird eine Funktion geschrieben, die beim Betätigen eines Menüpunktes ausgeführt werden soll:: def Test() { MessageBox("Menü Test gewählt!"); } Nun wird ein Menüpunkt hinter das Datei-Menü des Dokument-Menüs eingefügt (vor das Bearbeiten-Menü). Das Dokument-Menü hat nun die Einträge ``"Datei"``, ``"Test"``, ``"Bearbeiten"`` und weiter bis ``"Hilfe"``. :: nID = MnGetNewCommandID(); MnInsert("Document", 2, nID, "&Test"); Nun den Menübalken neu zeichnen :: MnDrawMenuBar(); Nun wird der Kommando-Nummer nID die UniScript-Funktion test() zugewiesen. Wenn der Menüpunkt mit dem Kommando-Nummer nID betätigt wird, wird die Funktion test() aufgerufen :: MnSetCommand(nID, "test()"); Es folgt ein vollständiges Beispiel für einen neuen Hauptmenüeintrag. Die Funktionen mit dem Aufruf können in einer ic-Datei im autoload-Verzeichnis gespeichert werden:: def MyCompayMenuInit() { ssMainMenu = "My Company"; ssMenuItem1 = "Start Test 1..."; ssMenuItem2 = "Start Test 2..."; ssMenuConfig = "Configuration"; nMenuIDItem1 = MnGetNewCommandID(); nMenuIDItem2 = MnGetNewCommandID(); nMenuIDConfig = MnGetNewCommandID(); // Names of the different menus svDocs = ["Main", "Document", "Editor", "Command", "SynEditor"]; for (ssDoc in svDocs) { MnInsert(ssDoc, 2, 0, ssMainMenu); MnAppend(ssDoc, 2, nMenuIDItem1, ssMenuItem1); MnAppend(ssDoc, 2, nMenuIDItem2, ssMenuItem2); MnAppend(ssDoc, 2, 0, "", MF_SEPARATOR); MnAppend(ssDoc, 2, nMenuIDConfig, ssMenuConfig); } ssDir = GetRootDirectory() + "bitmap/"; MnSetCommand(nMenuIDItem1, "_my_func_start_test1", "Start Test 1", .. "", "", "", ssDir + "open_blue.bmp"); MnSetCommand(nMenuIDItem2, "_my_func_start_test2", "Start Test 1", .. "", "", "", ssDir + "open_blue.bmp"); MnSetCommand(nMenuIDConfig, "_my_func_configuration", "", "", "", "", .. ssDir + "save_blue.bmp"); MnDrawMenuBar(); } MyCompayMenuInit() // invokes the function! .. seealso:: :ref:`uberblick-menus`, :ref:`MnAppend`, :ref:`MnRemove`, :ref:`MnDrawMenuBar`, :ref:`MnSetCommand`, :ref:`MnInsertPopup` :sub:`id-1834485`