Kategorie: Objekte
/ Menü
Ab Engineversion: 5.1 OC
AddMenuItem
Beschreibung
Fügt einen Menüeintrag hinzu.
Syntax
int AddMenuItem(string caption, string command, id symbol, int count, any parameter, string info_caption, int extra, any XPar1, any XPar2);
Parameter
- caption:
- Text des neuen Menüeintrags
- command:
- Kommando, das bei Auswahl des Menüeintrags ausgeführt werden soll. Kann entweder ein Funktionsname oder ein Statement sein. Wenn ein Funktionsname angegeben wird, dann wird die Funktion in dem Objekt aufgerufen, welches bei CreateMenu als command_object übergeben wurde.
- symbol:
- Die ID wird als Bild für den Menüeintrag verwendet. Der Name der Definition kann mit %s in caption verwendet werden. Außerdem wird die ID als erster Parameter an den Aufruf von command übergeben, sofern dieser nur ein Funktionsname ist.
- count:
- Gewünschte Zahl, die neben dem Menüeintrag angezeigt werden soll (ähnlich der Mengenanzeige im Aktivieren-Menü)
- parameter:
- Wird als 2. Parameter an die in command angegebene Funktion übergeben (siehe Anmerkung)
- info_caption:
- Beschreibungstext des neuen Menüeintrags
- extra:
- [opt] Zusatzparameter für das Verhalten des Menüeintrags.
Untere 7 Bits (0-127): Menüsymbol.
0: Normal
1: Rangsymbol. Bei angegebenem symbol wird ggf. die Rank.png der Definition genutzt. count gibt die Ranghöhe an
2: Picturefacet, das um XPar1-fache Picturebreite nach rechts verschoben ist. Damit lassen sich mehrere Menüsymbole innerhalb einer Definition unterbringen.
3: XPar1 gibt ein Objekt an, dessen Picture-Grafik mit Rang gezeichnet wird. Hat das Objekt keine Infosektion (und dmait keinen Rang), so wird in Kontextmenüs dennoch ein entsprechender Leerraum gelassen.
4: XPar1 gibt ein Objekt an, dessen Picture-Grafik gezeichnet wird.
Bit 8 (128): XPar2 wird als Wertangabe benutzt, und überschreibt die Standardangabe (Wert der Definition symbol). Siehe auch extra von CreateMenu - XPar1:
- [opt] Erster Zusatzparameter für extra.
- XPar2:
- [opt] Zweiter Zusatzparameter für extra.
Anmerkungen
Menüsymbole sollten optimalerweise die Größe 35x35 für normale Menüs, 16x16 für Kontextmenüs besitzen. Andernfalls wird unter Beibehaltung des Höhe/Breite-Verhältnisses so gestreckt, dass die längere Seite dieser Größe entspricht.
Wird als command-Parameter nur ein Funktionsname angegeben, werden folgende Parameter übergeben:
symbol, parameter, bRight[, value] wobei bRight angibt, ob der Menueintrag mit [Special2] bzw. der rechten Maustaste ausgewählt wurde. value wird nur übergeben, wenn das Bit 8 bei extra gesetzt wird und gibt den (überschriebenen) angezeigten Wert des ausgewählten Menüeintrags an.Beispiel
func ControlUse()
{
// Create local menu with local commandos
CreateMenu(GetID());
// Create menu items
AddMenuItem("Say hello", "SayHello");
AddMenuItem("Do magic", "DoMagic");
AddMenuItem("Create an object: %s", "CreateItem", Rock);
AddMenuItem("Create another object: %s", "CreateItem", Firestone);
}
func SayHello()
{
Message("Hello",this);
}
func DoMagic()
{
Sound("Magic*");
}
func CreateItem(id item)
{
CreateContents(item);
}
Menü für einen Spezial-Gegenstand.


