Das eigentliche Thema ist meiner Meinung nach die Gültigkeit(-dauer) von Variablen.
1. beispiel
(defun xxx (/ old_osmode )
(setq old_osmode (getvar "OSMODE"))
......
(setvar "OSMODE" old_osmode)
)
hier ist die lispvariable nicht lokal, sondern nur in der funktion xxx gültig, da das rücksetzen der systemvariablen jedoch in der gleichen funktion passiert, ist das kein problem
2. beispiel
(defun masterprogramm ( / old_osmode )
(speicherevariable)
....
(rücksetztevariable)
)
(defun speicherevariable (/)
(setq old_osmode (getvar "osmode"))
)
(defun rücksetztevariable (/)
(setvar "OSMODE" old_osmode)
)
auch hier ist die lisp vaiable nicht lokal , funktioniert aber doch, da es im master - programm definiert wird, aber für alle unter-programme gilt.
3. beispiel
(defun masterprogramm ( / old_osmode )
(speicherevariable)
....
(rücksetztevariable)
)
(defun speicherevariable (/ old_osmode )
(setq old_osmode (getvar "osmode"))
)
(defun rücksetztevariable (/ old_osmode )
(setvar "OSMODE" old_osmode)
)
dieses beispiel funktioniert NICHT, da auch in den unterprogrammen die variable deklariert wird (diese doppeldeklaration im unterprogramm beinflusst aber NICHT den Wert/Zusatnd der Variable im Hauptprogramm)
also es kommt nur drauf an , wo bzw wie variablen deklariert werden, damit sie ihren wert auch dann noch haben wenn man ihn braucht.
------------------
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP