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!
Siehe auch
Überblick Menüs, MnAppend, MnRemove, MnDrawMenuBar, MnSetCommand, MnInsertPopup
id-1834485