Hi folks,
I have written 2 following procedures, but IDL compilator signals an
error at
using "StdImage.FileName" since it does not know the definition of
StdImage in the COMMON block.
Could you tell my the reason and your solution ?
Thanks so much.
Best regard,
Tri.
;*********************************************************** ***
; procedure WindowLoadImage_event
;
; To manage all events of the WindowLoadImage
;*********************************************************** ***
pro WindowLoadImage_event, event
COMMON SHAREIMAGE
WIDGET_CONTROL, event.id, GET_UVALUE = selected
; define a temporal type
CASE selected OF
'LoadStdImage': BEGIN
fname = StdImage.FileName;
^^^^^^^^^^^^^^^^^^^^^^^^^
fname = DIALOG_PICKFILE(FILE = fname, GROUP =
LIWindow, $
/READ, FILTER = '*.hdr', /MUST_EXIST)
END
'LoadObjImage': BEGIN
END
ENDCASE
end
;*********************************************************** ***
; procedure WindowLoadImage
;
; the Window of LoadImage
;*********************************************************** ***
pro WindowLoadImage
COMMON SHAREIMAGE, StdImage, ObjImage
StdImage = {IMAGESTRUCT, Header:{HEADERSTRUCT, FileName:BYTARR(128),
Dimension:0, $
X_Dim:0, Y_Dim:0, Z_Dim:0, $
X_Size:0., Y_Size:0., Z_Size:0.}, $
Data:PTR_NEW()}
MW_XSize = 800 ; it must be at least equal 3*img_DrawSize
MW_YSize = 650
LIWindow = WIDGET_BASE(XSIZE = MW_XSize, YSIZE = MW_YSize, TITLE
=
'Load Images')
;****************
; Drawing windows
img_DrawSize = 256
img_XOffGap = (MW_XSize - 3 * img_DrawSize) / 4.0
img_YOffGap = 10
img_XOff = FIX(img_XOffGap)
img_YOff = img_XOffGap
StdImgDraw1 = WIDGET_DRAW(LIWindow, XSIZE = img_DrawSize, YSIZE
=
img_DrawSize, $
XOFFSET = img_XOff, YOFFSET = img_YOff, FRAME = 3,
COLORS = 256)
img_XOff = FIX(img_XOff + img_DrawSize + img_XOffGap)
StdImgDraw2 = WIDGET_DRAW(LIWindow, XSIZE = img_DrawSize, YSIZE
=
img_DrawSize, $
XOFFSET = img_XOff, YOFFSET = img_YOff, FRAME = 3,
COLORS = 256)
img_XOff = FIX(img_XOff + img_DrawSize + img_XOffGap)
StdImgDraw3 = WIDGET_DRAW(LIWindow, XSIZE = img_DrawSize, YSIZE
=
img_DrawSize, $
XOFFSET = img_XOff, YOFFSET = img_YOff, FRAME = 3,
COLORS = 256)
;****************
; Drawing buttons of range 1
img_XOff = FIX(img_XOffGap)
bt_YOff = img_YOffGap + img_DrawSize + 10
btSize = 60
btStdImgLoad = WIDGET_BUTTON(LIWindow, $
XOFFSET = img_XOff, YOFFSET = bt_YOff, XSIZE = btSize, $
VALUE = 'Load...', $
UVALUE = 'LoadStdImage')
;****************
; Drawing buttons of range 2
bt_YOff = MW_YSize - img_YOffGap - img_DrawSize - 30
btObjImgLoad = WIDGET_BUTTON(LIWindow, $
XOFFSET = img_XOff, YOFFSET = bt_YOff, XSIZE = btSize, $
VALUE = 'Load...', $
UVALUE = 'LoadObjImage')
WIDGET_CONTROL, LIWindow, /REALIZE
XMANAGER, 'WindowLoadImage', LIWindow
end
|