| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Creo |
Autor
|
Thema: LISP-Dialog: :after-input wird nicht ausgeführt (648 mal gelesen)
|
holt Mitglied Systembetreuer CAD
Beiträge: 713 Registriert: 07.08.2003 Corei7 3770K, Win7-64, 16GB PNY Quadro 2000K CoCreate Modeling 18.10 CoCreate Drafting 18.10 CoCreate ModelManager 18.10
|
erstellt am: 15. Feb. 2006 12:19 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich stehe vor einem kleinen Problem bei der Dialogprogrammierung: Nach der Auswahl eines Teils (erste Variable) soll der Name des Teils in die 2. Variable geschrieben werden. Das funktioniert immer, wenn der Benutzer den Teil wählt. Wenn aber beim Aufruf des Dialogs bereits ein Teil aktiv ist, wird das after-input nicht ausgführt. Woran liegt das? Oder gibt es eine andere Möglichkeit? ------------------ Gruß aus dem Salzkammergut Thomas Hollerweger Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Castell Mitglied Technical Advisor Engineering
Beiträge: 302 Registriert: 22.05.2000 Das Wissen der Menschen gehört der Menschheit.<P>SAP PLM, Notepad++, Windows 7
|
erstellt am: 15. Feb. 2006 12:32 <-- editieren / zitieren --> Unities abgeben: Nur für holt
Hola Thomas. Weil das after-input nur nach einem Input ausgeführt wird. Wenn du eine Variable vorbelegen willst, dann mußt du mit inital-value arbeiten. etwa :inital-value (if tbgr (setf tname (sd-inq-obj-basename tbgr)) (setf tname nil)) ungetestet ------------------ Viele Grüsse aus dem Schwabenländle Massimo Castell ------------------ DIE inoffizielle Hilfeseite zum OneSpace Designer http://osd.cad.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
holt Mitglied Systembetreuer CAD
Beiträge: 713 Registriert: 07.08.2003 Corei7 3770K, Win7-64, 16GB PNY Quadro 2000K CoCreate Modeling 18.10 CoCreate Drafting 18.10 CoCreate ModelManager 18.10
|
erstellt am: 15. Feb. 2006 12:50 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von Castell: Weil das after-input nur nach einem Input ausgeführt wird. ... ungetestet
aber gut! 10Us für deine schnelle Antwort! Was mich aber immer wieder beschäftigt: Gibt es eine Übersicht, wann und in welcher Reihenfolge diese Aktionen aufgerufen werden (generell was Dialogprogrammierung betrifft)?
------------------ Gruß aus dem Salzkammergut Thomas Hollerweger Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
holt Mitglied Systembetreuer CAD
Beiträge: 713 Registriert: 07.08.2003 Corei7 3770K, Win7-64, 16GB PNY Quadro 2000K CoCreate Modeling 18.10 CoCreate Drafting 18.10 CoCreate ModelManager 18.10
|
erstellt am: 15. Feb. 2006 13:10 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von holt: ungetestet aber gut!
... leider nein! Ich habs nämlich auch nicht getestet! Es funktioniert genausowenig wie mit after-input. Kann es sein, dass bei der Initialisierung die Variable tbgr noch leer ist? ------------------ Gruß aus dem Salzkammergut Thomas Hollerweger Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Dorothea Mitglied
Beiträge: 242 Registriert: 22.11.2001
|
erstellt am: 15. Feb. 2006 14:36 <-- editieren / zitieren --> Unities abgeben: Nur für holt
Hallo, In der Doku fuer sd-defdialog ist geschrieben: "The assignment of an initial value to a variable does not trigger the :after-input code of that variable. The dialog keyword :after-initialization is called after all the variables have been initialized and can be used to finalize the initial state of the dialog before it becomes interactive." => Lies mal nach bei :after-initialization. Da schreibst du all die Sachen (code) rein, die du automatisch initialisiert haben willst. Gruss Dorothea
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
holt Mitglied Systembetreuer CAD
Beiträge: 713 Registriert: 07.08.2003 Corei7 3770K, Win7-64, 16GB PNY Quadro 2000K CoCreate Modeling 18.10 CoCreate Drafting 18.10 CoCreate ModelManager 18.10
|
erstellt am: 15. Feb. 2006 14:40 <-- editieren / zitieren --> Unities abgeben:
Hallo Dorothea, heißt das, dass ich die Initialisierung doppelt machen muss? 1.) Wenn Teil aktiv ist bei :after-initialization 2.) Wenn Teil interaktiv gewählt wurde, bei :after-input ------------------ Gruß aus dem Salzkammergut Thomas Hollerweger Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
clausb Ehrenmitglied V.I.P. h.c.
Beiträge: 2914 Registriert: 20.12.2000 Ich schreibe das hier in meiner Freizeit und spreche weder für meinen Arbeitgeber noch für andere Firmen. Mehr Unsinn von mir unter clausbrod.de.
|
erstellt am: 15. Feb. 2006 15:12 <-- editieren / zitieren --> Unities abgeben: Nur für holt
|
Dorothea Mitglied
Beiträge: 242 Registriert: 22.11.2001
|
erstellt am: 15. Feb. 2006 15:14 <-- editieren / zitieren --> Unities abgeben: Nur für holt
Zitat: heißt das, dass ich die Initialisierung doppelt machen muss? 1.) Wenn Teil aktiv ist bei :after-initialization 2.) Wenn Teil interaktiv gewählt wurde, bei :after-input
Du musst den Code zweimal hinschreiben. Er wird nicht doppelt ausgefuehrt. Ueblicherweise schreibe ich deshalb solche Funktionalitaet in eine :local-function und rufe diese dann an 2 Stellen auf. Denk dran, du musst einen check einbauen, ob die Variable wirklich initialisiert wurde. Gibt es zum Beispiel kein actives Teil, dann kannst du in :after-initialization auch nicht drauf zugreifen, da es ja deiner Variable in :initial-value nicht zugewiesen wurde. Gruss Dorothea
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
holt Mitglied Systembetreuer CAD
Beiträge: 713 Registriert: 07.08.2003 Corei7 3770K, Win7-64, 16GB PNY Quadro 2000K CoCreate Modeling 18.10 CoCreate Drafting 18.10 CoCreate ModelManager 18.10
|
erstellt am: 15. Feb. 2006 15:25 <-- editieren / zitieren --> Unities abgeben:
|