01 | ENVI 函数 | | ====<<<< Description >>>>==== 启动 ENVI 程序并返回此程序的对象引用。 ---------------------------------------------------------------------------------- ====<<<< Syntax >>>>==== Result = ENVI([, Keywords=value] [, Properties=value]) ---------------------------------------------------------------------------------- ====<<<< Return Value >>>>==== ENVI 程序的对象引用。 ---------------------------------------------------------------------------------- ====<<<< Methods >>>>==== AddCustomReader AddExtension Close CreateView GetBroadcastChannel GetTemporaryFilename GetView HideExtensionFiles LogMessage OpenPointCloud OpenRaster OpenROI OpenVector QueryPointCloud Refresh ReportError RestoreSession SaveSession Show | | |
02 | ENVI 过程 | | ====<<<< Description >>>>==== 使用这个过程来恢复基本的环境保存文件(.sav)。 ---------------------------------------------------------------------------------- ====<<<< Syntax >>>>==== ENVI, /RESTORE_BASE_SAVE_FILES ---------------------------------------------------------------------------------- ====<<<< Parameters >>>>==== ◈ RESTORE_BASE_SAVE_FILES:使用这个关键字来恢复基本的环境保存文件(.sav)批处理模式。 | | ENVI, /RESTORE_BASE_SAVE_FILES
ENVI_BATCH_INIT
ENVI_REPORT_INIT, ['line1', 'line2', 'line3'], $
title='Title', base = base, /interrupt
ENVI_REPORT_INC, base, 100
ENVI_REPORT_STAT, base, 50, 100, CANCEL=cancel
效果如下所示: 添加 Cancel 按钮判断: ENVI, /RESTORE_BASE_SAVE_FILES
ENVI_BATCH_INIT
ENVI_REPORT_INIT, ['line1', 'line2', 'line3'], $
title='Title', base = base, /interrupt
ENVI_REPORT_INC, base, 100
FOR i = 0, 100-1 DO BEGIN
ENVI_REPORT_STAT, base, i+1, 100, CANCEL=cancelvar
;用来判断是否点击了 Cancel 按钮
IF cancelvar EQ 1 THEN BEGIN
tmp = DIALOG_MESSAGE('是否停止处理?', /cancel)
;用来判断点击了“确定”还是“取消”
IF tmp eq 'OK' THEN BEGIN
ENVI_REPORT_INIT, base = base, /finish
BREAK
ENDIF
ENDIF
WAIT,0.1
ENDFOR
ENVI_REPORT_INIT, base = base, /finish
ENVI_BATCH_EXIT
点击 Cancel 按钮效果如下所示: 参考:【转】进度条终止判断(IDL+ENVI) |
03 | ENVI_BATCH_INIT | | ====<<<< Description >>>>==== 这个过程已经被 ENVI 函数替换,代码如下: e = ENVI(/HEADLESS) 代替如下代码: ENVI, /RESTORE_BASE_SAVE_FILES ENVI_BATCH_INIT, /NO_STATUS_WINDOW。 ---------------------------------------------------------------------------------- ====<<<< Syntax >>>>==== ENVI_BATCH_INIT [, BATCH_LUN=variable] [, LOG_FILE=string] [, /NO_STATUS_WINDOW] ---------------------------------------------------------------------------------- ====<<<< Parameters >>>>==== ◈ NO_STATUS_WINDOW:使用这个关键字不显示经典状态窗体。 | |
04 | ENVI_REPORT_INIT | | ====<<<< Description >>>>==== 这个过程显示一个典型的进度条。 ---------------------------------------------------------------------------------- ====<<<< Syntax >>>>==== ENVI_REPORT_INIT, Rstr, BASE=variable, /FINISH, /INTERRUPT, TITLE=string ---------------------------------------------------------------------------------- ====<<<< Parameters >>>>==== ◈ Rstr:显示在状态窗体上的一组字符串,每一个元素显示一行。 ◈ BASE:设置此关键字用于显示状态窗体。 ◈ FINISH:设置此关键字,当处理结束后移除状态窗体。必须是相同的 Base 值。 ◈ INTERRUPT:设置此关键字允许使用 Cancel 中断处理。 ◈ TITLE:显示在状态窗体的标题栏上。 | |
05 | ENVI_REPORT_INC | | ====<<<< Description >>>>==== 用于增量处理。 ---------------------------------------------------------------------------------- ====<<<< Syntax >>>>==== ENVI_REPORT_INC, Base, Num_tiles ---------------------------------------------------------------------------------- ====<<<< Parameters >>>>==== ◈ Base:状态窗体的 ID 值。 ◈ Num_tiles:处理循环的总数。 | |
06 | ENVI_REPORT_STAT | | ====<<<< Description >>>>==== 更新百分比。 ---------------------------------------------------------------------------------- ====<<<< Syntax >>>>==== ENVI_REPORT_STAT, Base, Num, Den, CANCEL=variable ---------------------------------------------------------------------------------- ====<<<< Parameters >>>>==== ◈ Base:状态窗体的 ID 值。 ◈ Num:处理的数值,百分比取决于此值与总数的比值。 ◈ Den:总数。 ◈ CANCEL:用此关键字获取 cancel 按钮的返回值。 此关键字仅当设置了 ENVI_REPORT_INIT 的 INTERRUPT 关键字才管用。如果返回值为 1 表示按钮被按了,否则返回值为 0. | |
07 | ENVI_BATCH_EXIT | | ====<<<< Description >>>>==== 此过程已经被 ENVI 函数的 Close 方法所代替。 使用此过程用来终止 ENVI。 ---------------------------------------------------------------------------------- ====<<<< Syntax >>>>==== ENVI_BATCH_EXIT [, /EXIT_IDL] [, /NO_CONFIRM ---------------------------------------------------------------------------------- ====<<<< Parameters >>>>==== ◈ EXIT_IDL:设置此关键字将会强制退出 IDL。 ◈ NO_CONFIRM:不显示窗体退出的确认按钮。 | |