salida widgets [message #45380] |
Fri, 02 September 2005 08:21 |
hernan
Messages: 11 Registered: March 2005
|
Junior Member |
|
|
En el caso de error como hago que la ventana de salida coloque 'LOS
VALORES SON INCORRECTOS'
pro gui_matriz
;* Creamos la base de la matriz
MATRIZ_BASE = WIDGET_BASE(XSIZE = 250, YSIZE = 250, $
TITLE = 'GUI_MATRIZ')
;* Creamos la ventana que contiene la matriz
MATRIZ_LABEL = WIDGET_LABEL(MATRIZ_BASE, XOFFSET = 10, YOFFSET = 10, $
XSIZE = 200, VALUE = 'EDITE LA MATRIZ 3 X 3 Y PULSE ENTER')
MATRIZ_TEXT = WIDGET_TEXT(MATRIZ_BASE, XOFFSET = 30, YOFFSET = 30, $
XSIZE = 20, VALUE = '5,4,0 ; 4,5,0 ; 0,0,5', /EDITABLE)
;* Creamos la ventana de salida de resultados
EIGENVALOR_LABEL = WIDGET_LABEL(MATRIZ_BASE, XOFFSET = 80, YOFFSET =
70, $
XSIZE = 100, VALUE = 'VALORES PROPIOS')
EIGENVALOR_TEXT = WIDGET_TEXT(MATRIZ_BASE, XOFFSET = 30, YOFFSET = 90,
$
XSIZE = 30, /EDITABLE)
;* Creamos una estructura con los valores introducidos
INFO = {MATRIZ:MATRIZ_TEXT, EIGENVALOR:EIGENVALOR_TEXT}
WIDGET_CONTROL, MATRIZ_BASE, SET_UVALUE = INFO, /REALIZE
XMANAGER, 'GUI_MATRIZ', MATRIZ_BASE
END
PRO GUI_MATRIZ_EVENT, EVENT
;* Llamamos a la estructura de datos para colocarla en la parte
superior
;* de la interface como valores de usuario y designamos a los posibles
;* valores editados como matriz
WIDGET_CONTROL, EVENT.TOP, GET_UVALUE = INFO
WIDGET_CONTROL, INFO.MATRIZ, GET_VALUE = MATRIZ
MATRIZ = MATRIZ[0]
;* A partir de la cadena introducida por MATRIZ pasamos los elementos
de
;* estos a guarismos que conformaran la matriz de autovalores
SMATRIZ = STRSPLIT(MATRIZ, ' ; ', /EXTRACT)
SMATRIZ1 = FLOAT(STRSPLIT(SMATRIZ[0], ',', /EXTRACT)) ;Primera fila
SMATRIZ2 = FLOAT(STRSPLIT(SMATRIZ[1], ',', /EXTRACT)) ;Segunda fila
SMATRIZ3 = FLOAT(STRSPLIT(SMATRIZ[2], ',', /EXTRACT)) ;Tercera fila
EIGEN = FLTARR(3,3)
EIGEN[*,0] = SMATRIZ1
EIGEN[*,1] = SMATRIZ2
EIGEN[*,2] = SMATRIZ3
EIGENVAL = EIGENQL(EIGEN)
IF (N_ELEMENTS(EIGENVAL) NE 0) THEN BEGIN
WIDGET_CONTROL, INFO.EIGENVALOR, SET_VALUE = $
STRING(EIGENVAL)
ENDIF ELSE BEGIN
WIDGET_CONTROL, INFO.EIGENVALOR, SET_VALUE = 'LOS VALORES SON
INCORRECTOS'
ENDELSE
|
|
|