.子程序 MacroProcessor, 文本型, 公开, 宏插件导出函数名为此.返回错误信息.
.参数 apImmArgs, 整数型, , 宏参数首参数指针.其结构为 IMM_VALUE_WITH_DATA_TYPE
.参数 nNumImmArgs, 整数型, , 宏参数数目.
.参数 pProcessResult, 整数型, , 宏完成后返回值.其结构为 IMM_VALUE_WITH_DATA_TYPE
.局部变量 szErrorMsg, 文本型
.局部变量 FirstArgPointer, 整数型, , , 第一个参数的指针
.局部变量 FirstArgInfo, IMM_VALUE_WITH_DATA_TYPE, , , 第一个参数的信息
.局部变量 Buffer, 字节集
.局部变量 NumElements, 整数型, , , 如果参数为数组型,那么存放成员数
.局部变量 Data, 日期时间型
.如果真 (nNumImmArgs ≠ 1) ' !!!报个错
szErrorMsg = “参数数目错误!”
返回 (szErrorMsg)
.如果真结束
.如果 (FirstArgInfo.m_blIsAry = 假)
' !!!接下来处理不为数组的情况
.判断开始 (FirstArgInfo.m_dtDataType = #MDT_INT) ' 整数型
SetImmValueInt (pProcessResult, GetImmValueInt (FirstArgPointer) + 1) ' +1微调一下. 下同
.判断 (FirstArgInfo.m_dtDataType = #MDT_INT64) ' 长整数型
SetImmValueLong (pProcessResult, GetImmValueLong (FirstArgPointer) + 1)
.判断 (FirstArgInfo.m_dtDataType = #MDT_FLOAT) ' 单精度小数
SetImmValueFloat (pProcessResult, GetImmValueFloat (FirstArgPointer) + 1)
.判断 (FirstArgInfo.m_dtDataType = #MDT_DOUBLE) ' 双精度小数型
SetImmValueDouble (pProcessResult, GetImmValueDouble (FirstArgPointer) + 1)
.判断 (FirstArgInfo.m_dtDataType = #MDT_BOOL) ' 逻辑型
SetImmValueBool (pProcessResult, 取反 (GetImmValueBool (FirstArgPointer)))
' !!!也可以这样设置:SetImmValueInt (pProcessResult, 选择 (取反 (FirstArgInfo.m_imm ≠ 0), 1, 0)) ' 真=1,假=0
' !!!也可以这样取:GetImmValueBool(FirstArgPointer)
' !!!方法多多,不分别演示啦~
.判断 (FirstArgInfo.m_dtDataType = #MDT_DATE_TIME) ' 日期时间型
SetImmValueDateTime (pProcessResult, 增减时间 (GetImmValueDateTime (FirstArgPointer), #月份, 1)) ' 月份+1
.判断 (FirstArgInfo.m_dtDataType = #MDT_TEXT) ' 文本型
Buffer = 到字节集 (GetImmValueText (FirstArgPointer))
SetImmValueText (pProcessResult, “这是宏插件加上的哦~_” + 到文本 (Buffer))
.判断 (FirstArgInfo.m_dtDataType = #MDT_BIN) ' 字节集
' !!!我们在末尾追加个 111
Buffer = GetImmValueBin (FirstArgPointer)
Buffer = Buffer + { 111 }
SetImmValueBin (pProcessResult, Buffer)
.默认
szErrorMsg = “Sorry哦,我无法理解你传入的参数!”
上一篇 画板写的橡皮擦功能例子
下一篇 超级列表框多选删除,序号自动排列