Információk a legördülő és helyi menükre való hivatkozásról

Az almenük aktiválásának módszerét követve más legördülő vagy helyi menüket is aktiválhat vagy inaktiválhat. Ezt úgy hívják, hogy menühivatkozás.

A legördülő és a helyi menükre kétféleképpen lehet hivatkozni: relatív és abszolút módon. Az abszolút hivatkozás a menüpont abszolút helyét használja a menühierarchiában. A relatív hivatkozás a testreszabási csoport nevét és az elemazonosítót használja. Dinamikus természetük miatt a relatív hivatkozások használata ajánlott.

Abszolút hivatkozás

A menüelemre való hivatkozás mellett aktiválhatja vagy letilthatja bármelyik menüelemet a következő szintaxis használatával:

$Pn.i=xxx

A $ karakter egy menürészt tölt be, a Pn meghatározza az aktív menürészt (az érvényes értékek a 0-tól 16-ig terjedő tartomány elemei), az i megadja a menüelem számát, és az xxx (ha van ilyen) egy szürkített vagy megjelölt karakterláncot ad meg.

A $Pn=xxx szintaxis használatával a következő példa a POP7 álnévvel rendelkező menü 1-es eleméhez ad egy pipa jelet.

$P7.1=!.

A következő példa az AutoCAD programban a menucmd AutoLISP-függvényt használja egy legördülő vagy helyi menüelemre való hivatkozásához. Mivel a testreszabási fájlok dinamikusak (a részleges CUIx-fájlok betöltése folytán), a következő szintaxis nem fog minden esetben működni.

(menucmd "P1.2=~")

A szintaxis a menüelem helyét veszi alapul, és nem működik, ha egy új elemet illeszt be a POP1 elem elé a CUIBETÖLT parancs segítségével.

A menüelemek sorszámozása a menü hierarchiájától függetlenül folytonos.

Ahhoz, hogy egy elem – függetlenül a menürendszerben elfoglalt helyétől – könnyen hivatkozhasson önmagára, a következőt használhatja:

$P@.@=xxx

Az aktuális vagy legutoljára kiválasztott parancsra hivatkozik.

$P@.n=xxx

Az aktuális vagy legutoljára kiválasztott menü n-edik elemét jelöli.

Relatív hivatkozás

Egy legördülő vagy helyi menü egy elemére testreszabási csoport és elemazonosító alapján a menucmd AutoLISP-függvény használatával lehet hivatkozni. A következő kifejezés az elemazonosító alapján hivatkozik egy menüelemre.

(menucmd "Gcustomizationgroup.element_id=value")

A következő példa a relatív hivatkozási szintaxist használja az ID_Line menüelem kikapcsolására, amely az ACAD testreszabási csoportban található. Ez attól függetlenül működik, hogy a menüelem hol helyezkedik el a menüben.

(menucmd "GACAD.ID_Line=~")

Ha tudja, mit tartalmaz a fő testreszabási (CUIx) fájl, létrehozhat egy részleges testreszabási (CUIx) fájlt egy további menüelemmel, amely a fő CUIx-fájlra hivatkozik. Ilyen módon a részleges CUIx-fájlok és az adott alap testreszabási fájlok együttműködhetnek.

AutoLISP-hozzáférés a felirat állapotához

Az AutoLISP menucmd függvénye elfogadja a $Pn=xxx parancs-karakterláncot, de csak a kezdő $ karakter nélkül. Az ilyen függvényeknél a parancs xxx része speciális értékeket vehet fel.

Pn.i=?

A megadott elem aktuális letiltott és megjelölt állapotát adja vissza karakterláncként (például egy letiltott tétel esetében ~, egy pipával jelölt elem esetében !., egy nem kiszürkített és nem megjelölt elem esetében pedig "").

Pn.i=#?

Ugyanolyan típusú karakterláncot ad vissza, mint amelyet a Pn.i=? esetében ismertettünk, de a Pn.i= előtaggal. Ez a @ alakokkal együtt hasznos, mivel a visszatérési érték a tényleges menü- és menüpontszámot adja vissza.

Ha például az ötödik elem a POP6 szakaszban ki van kapcsolva, az alábbi menucmd kód a következő karakterlánc-értékeket adja vissza.

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