Y++ 滚动区域组件实现长布局示例
Y++ 滚动区域组件实现长布局示例
约 2214 字 · 6 分钟阅读
Y++ 使用组件箱:滚动区域 组件进行长布局,代码:
整数 g_通过
整数 g_失败
整数 g_滚动事件次数
整数 g_最后滚动值
文本 g_log
逻辑 g_要自动退出
函数 记日志 (文本 s) {
g_log = g_log + s + "\r\n"
输出(s)
}
函数 断言 (逻辑 ok, 文本 名) {
如果 (ok) {
g_通过 = g_通过 + 1
记日志(" OK " + 名)
} 否则 {
g_失败 = g_失败 + 1
记日志(" FAIL " + 名)
}
}
函数 收尾 () {
记日志("")
记日志("=== 总结 通过=" + 到文本(g_通过) + " 失败=" + 到文本(g_失败) + " ===")
文本 done = 合并路径(取程序目录(), "_test_done.txt")
如果 (g_失败 == 0) {
标签状态.标题 = "通过 " + 到文本(g_通过) + "/0"
输出("SCROLLAREA_LONG_OK")
写文件(done, 到文本(g_通过) + "/0", #编码_UTF8, #写模式)
} 否则 {
标签状态.标题 = "失败 " + 到文本(g_通过) + "/" + 到文本(g_失败)
输出("SCROLLAREA_LONG_FAIL")
写文件(done, 到文本(g_通过) + "/" + 到文本(g_失败), #编码_UTF8, #写模式)
}
如果 (g_要自动退出) {
如果 (g_失败 == 0) {
结束程序(0)
} 否则 {
结束程序(1)
}
}
}
函数 跑合测 () {
g_通过 = 0
g_失败 = 0
g_滚动事件次数 = 0
g_最后滚动值 = -1
g_log = ""
标签状态.标题 = "运行中…"
写文件(合并路径(取程序目录(), "_test_begin.txt"), "begin", #编码_UTF8, #写模式)
记日志("=== 滚动区域长布局新能力冒烟 ===")
滚动区域1.垂直滚动条 = 0
滚动区域1.水平滚动条 = 0
滚动区域1.平滑滚动 = 假
// 先测默认留白(0),再改成1:固定1px,不应再多出大块空白
滚动区域1.底部留白 = 0
滚动区域1.刷新()
滚动区域1.滚到(0, 0)
整数 ch默认 = 滚动区域1.内容高度
滚动区域1.底部留白 = 1
滚动区域1.刷新()
滚动区域1.滚到(0, 0)
断言(滚动区域1.垂直滚动条 == 0, "垂直滚动条=0(自动)")
断言(滚动区域1.水平滚动条 == 0, "水平滚动条=0(自动)")
断言(滚动区域1.底部留白 == 1, "底部留白=1")
断言(滚动区域1.平滑滚动 == 假, "平滑滚动=假")
整数 cw = 滚动区域1.内容宽度
整数 ch = 滚动区域1.内容高度
整数 vw = 滚动区域1.可视宽度
整数 vh = 滚动区域1.可视高度
记日志(" 内容=" + 到文本(cw) + "x" + 到文本(ch) + " 视口=" + 到文本(vw) + "x" + 到文本(vh) + " 默认高=" + 到文本(ch默认))
断言(cw > 0, "内容宽度>0")
断言(ch > vh, "内容高度>可视高度")
断言(vw > 0, "可视宽度>0")
断言(vh > 0, "可视高度>0")
断言(滚动区域1.需要垂直滚动条 == 1, "自动策略需要竖条")
断言(ch默认 > ch + 50, "默认留白明显大于固定1px")
断言(ch默认 - ch < 280, "默认留白在合理上限内")
整数 事件前 = g_滚动事件次数
滚动区域1.置滚动位置(200)
断言(滚动区域1.取滚动位置() == 200, "置滚动位置(200)")
断言(滚动区域1.垂直滚动位置 == 200, "属性 垂直滚动位置=200")
断言(g_滚动事件次数 > 事件前, "滚动事件已触发")
断言(g_最后滚动值 == 200, "事件当前值=200")
滚动区域1.滚过(0, 50)
断言(滚动区域1.取滚动位置() == 250, "滚过(+50)")
滚动区域1.滚到(0, 0)
断言(滚动区域1.取滚动位置() == 0, "滚到(0,0)")
断言(滚动区域1.水平滚动位置 == 0, "水平滚动位置=0")
滚动区域1.垂直滚动条 = 1
滚动区域1.滚到(0, 0)
断言(滚动区域1.垂直滚动条 == 1, "垂直滚动条=1(始终)")
断言(滚动区域1.需要垂直滚动条 == 1, "始终策略显示竖条")
滚动区域1.垂直滚动条 = 2
滚动区域1.滚到(0, 0)
断言(滚动区域1.垂直滚动条 == 2, "垂直滚动条=2(隐藏)")
断言(滚动区域1.需要垂直滚动条 == 0, "隐藏策略不显示竖条")
滚动区域1.置滚动位置(160)
断言(滚动区域1.取滚动位置() == 160, "隐藏策略仍可置滚动")
滚动区域1.平滑滚动 = 真
断言(滚动区域1.平滑滚动 == 真, "平滑滚动=真")
滚动区域1.平滑滚动 = 假
滚动区域1.垂直滚动条 = 0
滚动区域1.滚到(0, 0)
断言(滚动区域1.取滚动位置() == 0, "复位到顶")
收尾()
}
函数 主窗口.创建完毕 () {
g_要自动退出 = 假
文本 自动退出标记 = 取环境变量("YSTUDIO_SMOKE_AUTOEXIT")
如果 (自动退出标记 == "1") {
g_要自动退出 = 真
}
写文件(合并路径(取程序目录(), "_test_create.txt"), "create autoexit=" + 自动退出标记, #编码_UTF8, #写模式)
跑合测()
}
函数 滚动区域1.滚动 (整数 当前值) {
g_滚动事件次数 = g_滚动事件次数 + 1
g_最后滚动值 = 当前值
}
函数 按钮底部确认.单击 (整数 X, 整数 Y) {
标签状态.标题 = "已点到底部确认"
输出("底部确认被单击")
}
函数 按钮提示.单击 (整数 X, 整数 Y) {
g_要自动退出 = 假
跑合测()
}
设计时界面:

回复 (1)
登录后参与讨论。注册时需填写邮箱验证码。
登录 注册