MnInsert

MnInsert fügt einen Eintrag in ein Menü ein.

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)

Returnwert

bool ist TRUE (1) wenn das Menü-Item eingefügt werden konnte und sonst FALSE (0).

Parameter

ssMenu

ist der Name der Menüleiste (menu bar). Es gibt folgende Menüleisten:

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.
nMenu

ist die Position des Menüs. Der am weitestens links stehende Eintrag (i. allgem. das Datei-Menü) hat die Position 1.

nItem

nItem ist die Position des Menüs innerhalb des Menüs nMenu.

nCommandID

Ist eine Nummer zwischen 1 und 1024, der ein UniScript-Kommando mit der Funktion MnSetCommand zugewiesen werden kann. Eine neue ID liefert die Funktiton MnGetNewCommandID. Falls ein Menüeintrag in eine Hauptmenü eingefügt werden soll, hat nCommandID den Wert 0. Beispiel: MnInsert("Main", 2, 0, "Mein Menü");

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".

nFlag

nFlag ist einer der folgenden Werte:

Wert Bedeutung
MF_SEPARATOR Separator (horizontale Linie).
MF_MENUBARBREAK Untermenü.
MF_MENUBREAK Menü in neuer Spalte.

Kommentar

Wenn Sie ein Menü erzeugen möchten, erstellen Sie im autoload-Verzeichnis eine ic-Datei. Siehe Beispiel.

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!

id-1834485