Njjjjnnjaaaaa.
Also ich vermeide sd-display-warning, sd-display-question, sd-display-message wie der Teufel das Badewasser. "Recorderfähigkeit" ist ein hohes Gut!
Alle 3 Routinen sind sogeanntes "==>> modales Userinterface" .. Also UI popt hoch und eine Userinteraction wird erzwungen. Das kann dazu führen das automatisierte Dinge übers lange Wochenende einfach nicht durchlaufen und kann nen Haufen Ärger bedeuten.
Modales Window: Der Anwender WIRD gezwungen interaktive mit dem Programm zu agieren.
Wenn Du deinen eigene Funktion nämmlich von woanders aufrufst und du läufst auf eine von 3 drei Routinen dann steht die CHOOSE .. nur wegen eines sau blöden Mausklicks.
Innerhalb eines Dialoges kann man sowas häufig durch geschickte Verwendung von :check-function, :confirmation und :next-variable umgehen.
Ich würde es zumindest wie folgt gestalten:
Code:
(when situation-xy-is-there
(if (sd-call-action-active-p)
(progn
(pprint "Situation XY eingetreten. Standardmäßig geht es mit 'nein' weiter") ; für den log file
(sd-display-alert "situation XY eingetreten. Standardmäßig geht es mit 'nein' weiter" :icon :warning)
)
;; else
(let ((the-answer (sd-display-question "Situation XY eingetreten. Weiter machen?")))
(if (equal the-anser :yes)
(progn
(pprint "al la hop!!")
(pprint "Situation XY eingetreten. Wir machen mit 'ja' weiter") ; für den log file
)
;; else
(progn
(pprint "nix geht mehr!!")
(pprint "Situation XY eingetreten. Wir machen mit 'nein' weiter") ; für den log file
)
))
)
)
Heisst: wenn jemand Deine Routine per sd-call-cmds ruft, läuft die choose ungehindert weiter. Im interactiven mode kommt jenes UI in den Vordergrund.
https://support.ptc.com/help/creo_elements_direct/r20.4.0.0/advanced_documentation/integration_kit/reference/sd-call-cmds.html#sd-call-action-active-p
@Matthias .. später nachmittag
------------------
● Firefox ESR ● Java Forum Stuttgart JUGS ● OSD Hilfeseite (de) / help page (en) ● NotePad++ ● BuFDi ●
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP