acad hispano
¿Quieres reaccionar a este mensaje? Regístrate en el foro con unos pocos clics o inicia sesión para continuar.

Problema al reusar valores en DCL

2 participantes

Ir abajo

Problema al reusar valores en DCL Empty Problema al reusar valores en DCL

Mensaje por amc.dicsac Lun Ene 23, 2017 5:52 pm

Hola, Tengo 1 consulta, espero que pueda ayudarme.

Para empezar hice este lisp para escalar bloques y textos, y principalmente para guardar los valores en el registro y usarlos en varios cads, para evitar estar seleccionando nuevamente los valores en cada archvios, sin mas que decir les menciono el problema.

1-Si estoy guardando los valores en el registro con setenv y getenv porque no cambio el tamaño del texto al valor que se indica previamente.

Primero hago una condicional si *key_tog_1* no tiene ningun valor le asigno el valor 1 mediante (setq *key_tog_1* (getenv "MyData1")).

Código:

    (defun c:EscBlock (/ *key_tog_1* *key_tog_2* *key_popup* *key_editbox1* clik)
    
    (setq *key_tog_1* (getenv "MyData1"))
    (if (= *key_tog_1* nil) (progn (setenv "MyData1" "1") (setq *key_tog_1* (getenv "MyData1"))))
    
    (setq *key_tog_2* (getenv "MyData2"))
    (if (= *key_tog_2* nil) (progn (setenv "MyData2" "0") (setq *key_tog_2* (getenv "MyData2"))))
    
Despues por medio de action tile establesco otra condicional, si pulsamos aceptar este guardara los valores ingresados para luego volver a usarlos, cada vez que ejecuto nuevamente el dcl aparecen los datos guardados,  el problema viene cuando pulso aceptar no me genera los cambios.

Código:

    (action_tile "cancel" (strcat "(setq *screenpointModEsc* (done_dialog 1))" "(setq clik nil)"))
    (action_tile "accept" (strcat "(setq *screenpointModEsc* (done_dialog 2))" "(setq clik t)"))
    
    (setq dch (unload_dialog dch))
    (if (and dcl (findfile dcl))
    (vl-file-delete dcl))
    (if (< 0 dch) (unload_dialog dch))
    (if clik
      (progn
    (setenv "MyData1" *key_tog_1*)
    (setenv "MyData2" *key_tog_2*)
    (setenv "MyData3" *key_tog_3*)
    (setenv "MyData4" *key_popup*)
    (setenv "MyData5" *key_editbox1*)
          )
      )
    (setvar "cmdecho" 1)
    (princ))

Este es una parte del codigo, el original lo adjunto para que lo puedan observar, Gracias.

https://www.dropbox.com/sh/3nmbnbcmpyhs5t3/AACaCvvYwIue3Axwk_hBZULta?dl=0
amc.dicsac
amc.dicsac

Mensajes : 83
Fecha de inscripción : 17/03/2016
Edad : 33
Localización : Lima - Perú

http://axprogramlisp.blogspot.pe/

Volver arriba Ir abajo

Problema al reusar valores en DCL Empty Re: Problema al reusar valores en DCL

Mensaje por nikitonipongo Miér Feb 08, 2017 12:14 pm

prueba a modificar el codigo de esta manera:

Código:

;|......Rest of code|;
 (action_tile "cancel" (strcat "(setq *screenpointModEsc* (done_dialog 0))"))
 (action_tile "accept" (strcat "(setq *screenpointModEsc* (done_dialog 1))"))

 (unload_dialog dch)
 (Cond
  ((= dch 0)(setq clik nil))
  ((= dch 1)
   (setenv "MyData1" *key_tog_1*)
   (setenv "MyData2" *key_tog_2*)
   (setenv "MyData3" *key_tog_3*)
   (setenv "MyData4" *key_popup*)
   (setenv "MyData5" *key_editbox1*)
   (unload_dialog dch)
   (setq clik t)
  )
 );c.cond
 (if (and dcl (findfile dcl))
  (vl-file-delete dcl)
 )
 (setvar "cmdecho" 1)

 ;|Return value|; clik

);close defun

(princ)

nikitonipongo

Mensajes : 4
Fecha de inscripción : 08/02/2017

Volver arriba Ir abajo

Problema al reusar valores en DCL Empty Re: Problema al reusar valores en DCL

Mensaje por amc.dicsac Miér Feb 08, 2017 8:30 pm

nikitonipongo escribió:prueba a modificar el codigo de esta manera:

Código:

;|......Rest of code|;
 (action_tile "cancel" (strcat "(setq *screenpointModEsc* (done_dialog 0))"))
 (action_tile "accept" (strcat "(setq *screenpointModEsc* (done_dialog 1))"))

 (unload_dialog dch)
 (Cond
  ((= dch 0)(setq clik nil))
  ((= dch 1)
   (setenv "MyData1" *key_tog_1*)
   (setenv "MyData2" *key_tog_2*)
   (setenv "MyData3" *key_tog_3*)
   (setenv "MyData4" *key_popup*)
   (setenv "MyData5" *key_editbox1*)
   (unload_dialog dch)
   (setq clik t)
  )
 );c.cond
 (if (and dcl (findfile dcl))
  (vl-file-delete dcl)
 )
 (setvar "cmdecho" 1)

 ;|Return value|; clik

);close defun

(princ)

Ok, aunque ya lo solucione de otra forma, lo intentare de la forma que me indicas haber que resultados tengo, Gracias
amc.dicsac
amc.dicsac

Mensajes : 83
Fecha de inscripción : 17/03/2016
Edad : 33
Localización : Lima - Perú

http://axprogramlisp.blogspot.pe/

Volver arriba Ir abajo

Problema al reusar valores en DCL Empty Re: Problema al reusar valores en DCL

Mensaje por Contenido patrocinado


Contenido patrocinado


Volver arriba Ir abajo

Volver arriba

- Temas similares

 
Permisos de este foro:
No puedes responder a temas en este foro.