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)批处理模式。
|
|
1 2 3 4 5 6 | 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 按钮判断:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | 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:不显示窗体退出的确认按钮。
|
|
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)