(in-package :examples) (use-package :oli) ;; Dialog erstellen (sd-defdialog 'Punkte_weg :dialog-title "Punkte loeschen" :toolbox-button t :dialog-control :sequential :variables '( (punkt1 :value-type :docupntcnp :prompt-text "Ersten Punkt des Rechtecks angeben." :title "Anfangspkt" :after-input (sd-execute-annotator-command :cmd (format nil "LINE RECTANGLE ~A,~A" (oli::gpntdocu_x punkt1) (oli::gpntdocu_y punkt1))) ) (punkt2 :value-type :docupntcnp :prompt-text "Zweiten Punkt des Rechtecks angeben." :title "Endpunkt" :after-input (progn (after-punkt2-action) (sd-execute-annotator-command :cmd (format nil "CANCEL")) );;progn ) ) :local-functions '( (after-punkt2-action () (let () (when (equal punkt1 punkt2) (progn (sd-display-error "Start- und Zielpunkt sind identisch!") (setf rpnt nil) );;progn );;when );;let ) (next-action () (oli::sd-execute-annotator-command :cmd (format nil "DELETE SELECT GLOBAL ALL EXOR GLOBAL BOX ~a,~a ~a,~a CONFIRM" (oli::gpntdocu_x punkt1) (oli::gpntdocu_y punkt1) (oli::gpntdocu_x punkt2) (oli::gpntdocu_y punkt2))) (LISP::IF (OLI::SD-INQ-CURRENT-VP) (UI::UIC-VP-CMD "fit_vp") (FRAME2::PUT-BUFFER "docu_vp \"Annotation\" :fit_vp")) ) ) :ok-action '(next-action) :help-action '() )