Referenzieren von Pulldown- oder Kontextmenüs

Mit einer Vorgehensweise, die derjenigen zur Aktivierung von Untermenüs entspricht, können Sie andere Pulldown-Menüs oder Kontextmenüs aktivieren oder deaktivieren. Dies wird als Referenzieren eines Menüs bezeichnet.

Pulldown- oder Kontextmenüs können mit zwei unterschiedlichen Methoden referenziert werden: der relativen und der absoluten Methode. Die absolute Verweismethode verwendet die absolute Position eines Menüelements in der Menühierarchie. Bei der relativen Verweismethode werden der Name der Anpassungsgruppe und die Element-ID verwendet. Relatives Referenzieren wird aufgrund seiner dynamischen Art empfohlen.

Absolutes Referenzieren

Neben dem Referenzieren können Sie Menüelemente mit der folgenden Syntax aktivieren oder deaktivieren:

$Pn.i=xxx

$ lädt einen Menüabschnitt, Pn legt den aktiven Menüabschnitt fest (0 bis 16 sind gültige Werte), i gibt die Menüelementnummer an und xxx (falls vorhanden) legt eine Zeichenfolge von grau abgeblendeten oder markierten Zeichen fest.

Mit der Syntax $Pn=xxx wird im folgenden Beispiel ein Häkchen zu Element 1 des Aliasnamens für Menü POP7 hinzugefügt.

$P7.1=!.

Im folgenden Beispiel wird in AutoCAD die AutoLISP-Funktion menucmd zum Referenzieren eines Pulldown- oder Kontextmenüelements verwendet. Da Anpassungsdateien dynamisch sind (durch Laden von partiellen CUIx-Dateien), kann die folgende Syntax nicht in allen Fällen verwendet werden.

(menucmd "P1.2=~")

Diese Syntax basiert auf der Position des Menüelements und kann nicht verwendet werden, wenn ein neues Element vor dem Abschnitt POP1 mithilfe des Befehls ABILAD hinzugefügt wurde.

Die Nummerierung von Menüelementen erfolgt fortlaufend, unabhängig von der Menühierarchie.

Um die Selbstadressierung eines Elements unabhängig von seiner Position in der Menühierarchie zu erleichtern, ist Folgendes zulässig:

$P@.@=xxx

Verweist auf den aktuellen oder den zuletzt ausgewählten Befehl.

$P@.n=xxx

Verweist auf die Option n im aktuellen bzw. zuletzt ausgewählten Menü.

Relatives Referenzieren

Sie können ein Pulldown- oder Kontextmenüelement anhand der Anpassungsgruppe und der Element-ID mit der AutoLISP-Funktion menucmd referenzieren. Die folgende Syntax referenziert ein Menüelement basierend auf der Element-ID.

(menucmd "Gcustomizationgroup.element_id=value")

Im folgenden Beispiel wird das Menüelement ID_Line, das in der Anpassungsgruppe ACAD gespeichert ist, mithilfe der Syntax für relatives Referenzieren deaktiviert. Die Position des Elements im Menü ist dabei unerheblich.

(menucmd "GACAD.ID_Line=~")

Wenn Sie den Inhalt der Hauptanpassungsdatei (CUIx-Datei) kennen, können Sie eine partielle Anpassungsdatei (CUIx-Datei) mit einem zusätzlichen Menüelement erstellen, das die CUIx-Hauptdatei referenziert. Auf diese Weise können mehrere partielle CUIx-Dateien und spezifische Basis-Anpassungsdateien kombiniert werden.

AutoLISP-Zugriff auf Beschriftungsstatus

Die AutoLISP-Funktion menucmd akzeptiert die Befehlsfolgen $Pn=xxx, jedoch ohne vorangestelltes Zeichen $. Bei diesen Funktionen kann der Bereich xxx der Befehlsfolge spezielle Werte annehmen.

Pn.i=?

Gibt den aktuellen Status Deaktiviert und Markiert für das angegebene Element als Zeichenfolge zurück (z. B. ~ für ein deaktiviertes Element, !. für ein Element mit einem Häkchen und "" für ein Element, das weder abgeblendet noch markiert ist).

Pn.i=#?

Gibt den gleichen Zeichenfolgentyp wie für Pn.i=? zurück, allerdings mit dem Präfix Pn.i=. Dies ist mit @-Formen hilfreich, da das Menü und die Optionsnummer selbst zurückgegeben werden.

Wenn beispielsweise die fünfte Option im Abschnitt POP6 deaktiviert ist, gibt der folgende menucmd-Code die nachstehenden Werte zurück.

(menucmd "P6.5=?")     returns  "~" 
(menucmd "P6.5=#?")    returns  "P6.5=~"