精易论坛

标题: 求 信息框 按钮参数 的实现办法 [打印本页]

作者: Maclovin    时间: 2022-9-19 03:49
标题: 求 信息框 按钮参数 的实现办法
求 信息框 按钮参数 的实现办法类似信息框 按钮参数位或位于的方法 具体叫什么
又是如何实现5组 数据位或的



补充内容 (2022-9-19 04:01):
想 写个类似 信息框的函数 实现和按钮一样的传参方式
作者: 爱吃蒜苔的我    时间: 2022-9-19 03:55
    调用格式: 〈整数型〉 信息框 (通用型 提示信息,整数型 按钮,[文本型 窗口标题],[通用型 父窗口]) - 系统核心支持库->系统处理
    英文名称:MsgBox
    在对话框中显示信息,等待用户单击按钮,并返回一个整数告诉用户单击哪一个按钮。该整数为以下常量值之一: 0、#确认钮; 1、#取消钮; 2、#放弃钮; 3、#重试钮; 4、#忽略钮; 5、#是钮; 6、#否钮。如果对话框有“取消”按钮,则按下 ESC 键与单击“取消”按钮的效果相同。本命令为初级命令。
    参数<1>的名称为“提示信息”,类型为“通用型(all)”。提示信息只能为文本、数值、逻辑值或日期时间。如果提示信息为文本且包含多行,可在各行之间用回车符 (即“字符 (13)”)、换行符 (即“字符 (10)”) 或回车换行符的组合 (即:“字符 (13) + 字符 (10)”) 来分隔。
    参数<2>的名称为“按钮”,类型为“整数型(int)”,初始值为“0”。参数值由以下几组常量值组成,在将这些常量值相加以生成参数值时,每组值只能取用一个数字(第五组除外):
  第一组(描述对话框中显示按钮的类型与数目):
    0、#确认钮; 1、#确认取消钮; 2、#放弃重试忽略钮; 3、#取消是否钮;     4、#是否钮; 5、#重试取消钮
  第二组(描述图标的样式):
    16、#错误图标; 32、#询问图标; 48、#警告图标; 64、#信息图标
  第三组(说明哪一个按钮是缺省默认值):
    0、#默认按钮一; 256、#默认按钮二; 512、#默认按钮三; 768、#默认按钮四
  第四组(决定如何等待消息框结束):
    0、#程序等待; 4096、#系统等待
  第五组(其它):
    65536、#位于前台; 524288、#文本右对齐

    参数<3>的名称为“窗口标题”,类型为“文本型(text)”,可以被省略。参数值指定显示在对话框标题栏中的文本。如果省略,默认为文本“信息:”。
    参数<4>的名称为“父窗口”,类型为“通用型(all)”,可以被省略。指定信息框的父窗口,可以是一个"窗口"类型数据或者一个整数型窗口句柄.如果被省略,默认为无.

    操作系统需求: Windows

作者: Siempre    时间: 2022-9-19 03:59
信息框 (“122”, 位或 (#取消是否钮, #询问图标, #默认按钮一, #程序等待, #文本右对齐), , )

’参数<2>的名称为“按钮”,类型为“整数型(int)”,初始值为“0”。参数值由以下几组常量值组成,在将这些常量值相加以生成参数值时,每组值只能取用一个数字(第五组除外)
‘参数二有五组类型 自己看提示,以上例子五组中各取一个
作者: Maclovin    时间: 2022-9-19 04:01
Siempre 发表于 2022-9-19 03:59
信息框 (“122”, 位或 (#取消是否钮, #询问图标, #默认按钮一, #程序等待, #文本右对齐), , )

’参数的名 ...

嗯,我想问的是 我想写个累死这样的函数传参 如何实现
作者: Maclovin    时间: 2022-9-19 04:02
爱吃蒜苔的我 发表于 2022-9-19 03:55
调用格式: 〈整数型〉 信息框 (通用型 提示信息,整数型 按钮,[文本型 窗口标题],[通用型 父窗 ...

想 写个类似 信息框的函数 实现和按钮一样的传参方式
作者: 爱吃蒜苔的我    时间: 2022-9-19 04:03
Maclovin 发表于 2022-9-19 04:01
嗯,我想问的是 我想写个累死这样的函数传参 如何实现


信息框 (“122”, 位或 (#取消是否钮, #询问图标, #默认按钮一, #程序等待, #文本右对齐), , )

“122”  这个就是传入文本到弹出的信息框上
作者: Maclovin    时间: 2022-9-19 04:06
爱吃蒜苔的我 发表于 2022-9-19 04:03
信息框 (“122”, 位或 (#取消是否钮, #询问图标, #默认按钮一, #程序等待, #文本右对齐), , )

“122” ...

想 写个类似 信息框的函数 实现和按钮一样的传参方式
作者: 爱吃蒜苔的我    时间: 2022-9-19 04:07
Maclovin 发表于 2022-9-19 04:06
想 写个类似 信息框的函数 实现和按钮一样的传参方式

新建窗口 窗口上面什么都能写
作者: Siempre    时间: 2022-9-19 04:07
Maclovin 发表于 2022-9-19 04:02
想 写个类似 信息框的函数 实现和按钮一样的传参方式

用位与判断
如果真 (位与 (位或出来的值, 1) ≠ 0)
  调试输出(“有1”)


补充内容 (2022-9-19 04:09):
如果真 (位与 (位或出来的值, 1) =1)
作者: Maclovin    时间: 2022-9-19 04:10
Siempre 发表于 2022-9-19 04:07
用位与判断
如果真 (位与 (位或出来的值, 1) ≠ 0)
  调试输出(“有1”)

老大  能在详细点吗  或者给个例子 感谢
作者: Siempre    时间: 2022-9-19 04:21
Maclovin 发表于 2022-9-19 04:10
老大  能在详细点吗  或者给个例子 感谢

参考精易模块源码  文本_取随机字符()  就是很好很详细的例子
作者: Maclovin    时间: 2022-9-19 04:29
Siempre 发表于 2022-9-19 04:21
参考精易模块源码  文本_取随机字符()  就是很好很详细的例子

参考了 按他写的  我输入3 会位或12345 都会执行
作者: Maclovin    时间: 2022-9-19 04:32
Siempre 发表于 2022-9-19 04:21
参考精易模块源码  文本_取随机字符()  就是很好很详细的例子
  
如果真 (位与 (Button, 1) ≠ 0)
tmp = 位或 (tmp, 1)
如果真 (位与 (Button, 2) ≠ 0)
tmp = 位或 (tmp, 2)
如果真 (位与 (Button, 3) ≠ 0)
tmp = 位或 (tmp, 3)
如果真 (位与 (Button, 4) ≠ 0)
tmp = 位或 (tmp, 4)
如果真 (位与 (Button, 5) ≠ 0)
tmp = 位或 (tmp, 5)
如果真 (位与 (Button, 16) ≠ 0)
tmp = 位或 (tmp, 16)
如果真 (位与 (Button, 32) ≠ 0)
tmp = 位或 (tmp, 32)
如果真 (位与 (Button, 48) ≠ 0)
tmp = 位或 (tmp, 48)
如果真 (位与 (Button, 64) ≠ 0)
tmp = 位或 (tmp, 64)
如果真 (tmp = 0)
tmp = 0
Button = tmp
调试输出 (“Button”, Button)
如果真 (位与 (Button, 0) = 0)
调试输出 (“Button”, 0)
如果真 (位与 (Button, 1) ≠ 0)
调试输出 (“Button”, 1)
如果真 (位与 (Button, 2) ≠ 0)
调试输出 (“Button”, 2)
如果真 (位与 (Button, 3) ≠ 0)
调试输出 (“Button”, 3)
如果真 (位与 (Button, 4) ≠ 0)
调试输出 (“Button”, 4)
如果真 (位与 (Button, 5) ≠ 0)
调试输出 (“Button”, 5)
如果真 (位与 (Button, 16) ≠ 0)
调试输出 (“错误图标”)
如果真 (位与 (Button, 32) ≠ 0)
调试输出 (“询问图标”)
如果真 (位与 (Button, 48) ≠ 0)
调试输出 (“警告图标”)
如果真 (位与 (Button, 64) ≠ 0)
调试输出 (“信息图标”)


i支持库列表   支持库注释   
spec特殊功能支持库


输入4+8 16 32 48都会执行


补充内容 (2022-9-19 04:36):
如我输入65 应该执行 1和64  但是他会执行012345 16 32 48 那我只想要 确认取消按钮 和 警告图标 如何实现

补充内容 (2022-9-19 04:56):
@大司马 如何实现 和信息框一样按组位或
作者: Maclovin    时间: 2022-9-19 04:57
@大司命 如何实现 和信息框一样按组位或
作者: Maclovin    时间: 2022-9-19 04:57
Maclovin 发表于 2022-9-19 04:32
[e=0].版本 2
.支持库 spec

@大司命 如何实现 和信息框一样按组位或
作者: afu45    时间: 2022-9-19 07:53
Maclovin 发表于 2022-9-19 04:57
@大司命 如何实现 和信息框一样按组位或

注意看按钮的参数,其实是有规律的
除了第一组,其他都不是按顺序来的
你把他每个数字都转换成2进制,就发现其中的原理了
作者: longxp    时间: 2022-9-19 09:02
.版本 2

.子程序 系统_信息框Ex, 整数型, 公开, 消息规定时间内超时自动关闭,成功返回单击按钮ID,失败返回0
.参数 标题, 文本型
.参数 内容, 文本型
.参数 超时时间, , , 1000限1秒
.参数 按钮类型, , , 1 确定+取消 2 终止+重试+忽略  3 是+否+取消 4 是+否 5 重试+取消  6 取消+重试+继续  16 红X+确定 17 红X+确定+取消 18 红X+终止+重试+忽略  19 红X+是+否+取消 20 红X+是+否  21 红X+重试+取消  32 蓝问号+确定  33 蓝问号+确定+取消   34 蓝问号+终止+重试+忽略   35 蓝问号+是+否+取消  36 蓝问号+是+否  37 蓝问号+重试+取消  48 黄叹号+确定 49 黄叹号+确定+取消 50 黄叹号+终止+重试+忽略  51 黄叹号+是+否+取消  52 黄叹号+是+否  53 黄叹号+重试+取消    64 蓝叹号+确定  65 蓝叹号+确定+取消  66 蓝叹号+终止+重试+忽略  67 蓝叹号+是+否+取消   68 蓝叹号+是+否   69 蓝叹号+重试+取消

返回 (MessageBoxTimeoutA (GetActiveWindow (), 内容, 标题, 按钮类型, 0, 超时时间))

作者: Maclovin    时间: 2022-9-20 20:24
@大司命 的确可能有点误区,其实我的问题 就是想仿 信息框的方式去传参 然后想知道这个函数 是如何实现的 想去搜索自学 也不知道这种方式叫什么
作者: Maclovin    时间: 2022-9-20 20:24
Maclovin 发表于 2022-9-20 20:24
@大司命 的确可能有点误区,其实我的问题 就是想仿 信息框的方式去传参 然后想知道这个函数 是如何实现的  ...

@大司命




欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4