开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 521|回复: 4
收起左侧

[求助] 组件自适应窗口_有缺陷,能力不足,优化不了

[复制链接]
发表于 2023-7-26 00:16:01 | 显示全部楼层 |阅读模式   浙江省温州市
看了别的大佬写的组件自适应窗口 不是很好用,我自己写了一个,希望大佬,帮忙优化一下
.版本 2

.程序集 窗口程序集_启动窗口
.程序集变量 集_自适应_子句柄_数组, 整数型, , "0"
.程序集变量 集_自适应_自窗口句柄, 整数型
.程序集变量 集_自适应_判断, 逻辑型
.程序集变量 集_自适应_主窗口_宽度, 双精度小数型
.程序集变量 集_自适应_主窗口_高度, 双精度小数型
.程序集变量 集_自适应_左边, 整数型, , "0"
.程序集变量 集_自适应_顶边, 整数型, , "0"
.程序集变量 集_自适应_右边, 整数型, , "0"
.程序集变量 集_自适应_底边, 整数型, , "0"

.子程序 __启动窗口_尺寸被改变

_启动_尺寸_自适应 (_启动窗口)

.子程序 _启动_尺寸_自适应, , 公开, 放在 __启动窗口_尺寸被改变 下面就可以了
.参数 自适应窗口, 窗口, , 要载入的窗口 比如  _启动窗口
.局部变量 主窗口矩形, 矩形
.局部变量 组件矩形, 矩形
.局部变量 局_高度系数, 双精度小数型
.局部变量 局_宽度系数, 双精度小数型
.局部变量 组件_左边, 整数型
.局部变量 组件_高度, 整数型
.局部变量 组件_宽度, 整数型
.局部变量 组件_顶边, 整数型
.局部变量 局_主窗口宽度, 双精度小数型
.局部变量 局_主窗口高度, 双精度小数型
.局部变量 局_等待, 整数型
.局部变量 局_数量, 整数型
.局部变量 局_变化宽度, 双精度小数型
.局部变量 局_变化高度, 双精度小数型
.局部变量 补宽, 双精度小数型
.局部变量 补高, 双精度小数型
.局部变量 补足, 整数型
.局部变量 F
.局部变量 局_组件数量, 整数型

.如果真 (集_自适应_自窗口句柄 = 0)
    集_自适应_自窗口句柄 = 自适应窗口.取窗口句柄 ()
    .如果真 (集_自适应_自窗口句柄 = 0)
        集_自适应_判断 = 假
        返回 ()
    .如果真结束
    局_组件数量 = 窗口_子句柄_枚举_精 (集_自适应_自窗口句柄, 集_自适应_子句柄_数组, , 真)  ' 可以用 精益 枚举子句柄 忘记是什么了 窗口_枚举子句柄 好像是这样
    .如果真 (局_组件数量 = 0)
        集_自适应_判断 = 假
        返回 ()
    .如果真结束

    .如果真 (局_组件数量 = 0)
        返回 ()
    .如果真结束
    窗口_矩形 (集_自适应_自窗口句柄, 主窗口矩形)
    集_自适应_主窗口_宽度 = 主窗口矩形.右边 - 主窗口矩形.左边
    集_自适应_主窗口_高度 = 主窗口矩形.底边 - 主窗口矩形.顶边
    .计次循环首 (局_组件数量, F)
        窗口_矩形 (集_自适应_子句柄_数组 [F], 组件矩形)
        加入成员 (集_自适应_左边, 组件矩形.左边 - 主窗口矩形.左边 - 10)
        加入成员 (集_自适应_顶边, 组件矩形.顶边 - 主窗口矩形.顶边 - 30)
        加入成员 (集_自适应_右边, 组件矩形.右边 - 组件矩形.左边)
        加入成员 (集_自适应_底边, 组件矩形.底边 - 组件矩形.顶边)
    .计次循环尾 ()
    F = 0
    集_自适应_判断 = 真
.如果真结束

.如果真 (集_自适应_判断 = 假)
    信息框 (“出现错误”, 0, , )
    返回 ()
.如果真结束


窗口_矩形 (集_自适应_自窗口句柄, 主窗口矩形)
局_主窗口宽度 = 主窗口矩形.右边 - 主窗口矩形.左边
局_主窗口高度 = 主窗口矩形.底边 - 主窗口矩形.顶边
局_变化宽度 = 局_主窗口宽度 - 集_自适应_主窗口_宽度
局_变化高度 = 局_主窗口高度 - 集_自适应_主窗口_高度
局_宽度系数 = 局_主窗口宽度 ÷ 集_自适应_主窗口_宽度
局_高度系数 = 局_主窗口高度 ÷ 集_自适应_主窗口_高度

局_数量 = 取数组成员数 (集_自适应_子句柄_数组)
.计次循环首 (局_数量, F)
    窗口_矩形 (集_自适应_子句柄_数组 [F], 组件矩形)

    .如果 (局_主窗口宽度 < 集_自适应_主窗口_宽度 ÷ 2)
        补宽 = -(10 - 局_宽度系数)
    .否则
        补宽 = 局_宽度系数
    .如果结束
    .如果 (局_主窗口高度 < 集_自适应_主窗口_高度)
        补高 = -(30 - 局_高度系数)
    .否则
        补高 = 局_高度系数

    .如果结束

    组件_左边 = 集_自适应_左边 [F] × 局_宽度系数 + 补宽
    组件_宽度 = 集_自适应_右边 [F] × 局_宽度系数 + 补宽
    组件_顶边 = 集_自适应_顶边 [F] × 局_高度系数 + 补高
    组件_高度 = 集_自适应_底边 [F] × 局_高度系数  ' + 补高
    .如果真 (组件_高度 < 20)
        组件_高度 = 20
    .如果真结束
    .如果真 (组件_左边 < 1)
        组件_左边 = 1
    .如果真结束
    补足 = 70  ' -------------------------------------------------------------------------这里可以调试改最优
    ' 调试输出 (组件_顶边 + 组件_高度 - 局_主窗口高度)
    .如果真 (组件_顶边 + 组件_高度 + 补足 ≥ 局_主窗口高度)  ' 32补足
        .如果 (组件_顶边 < 补足)
            组件_顶边 = 组件_顶边 - 补足 ÷ 5
        .否则
            组件_顶边 = 组件_顶边 - 补足 ÷ 10
        .如果结束

    .如果真结束
    .如果真 (组件_顶边 < 1)
        组件_顶边 = 1
    .如果真结束

    窗口_移动_可以改变大小 (集_自适应_子句柄_数组 [F], 组件_左边, 组件_顶边, 组件_宽度, 组件_高度)  ' 可以用这个 MoveWindow
.计次循环尾 ()

签到天数: 2 天

 楼主| 发表于 2023-7-26 18:22:38 | 显示全部楼层   浙江省温州市
铅笔刀 发表于 2023-7-26 08:49
https://bbs.125.la/forum.php?mod=viewthread&tid=14738931&extra=    都没我的好用

真棒 学习到了
回复 支持 反对

使用道具 举报

结帖率:80% (4/5)

签到天数: 24 天

发表于 2023-7-26 08:49:35 | 显示全部楼层   广东省惠州市
回复 支持 反对

使用道具 举报

结帖率:100% (5/5)

签到天数: 2 天

发表于 2023-7-26 01:34:47 | 显示全部楼层   广东省佛山市
窗口组件自适应-自动调节大小-增强版
https://bbs.125.la/forum.php?mod=viewthread&tid=14705077
(出处: 精易论坛)
回复 支持 反对

使用道具 举报

结帖率:92% (190/207)

签到天数: 17 天

发表于 2023-7-26 00:26:14 | 显示全部楼层   **
https://bbs.125.la/forum.php?mod ... A%E9%80%82%E5%BA%94这个很好用啊 里面的标记记得弄好
回复 支持 反对

使用道具 举报

  高级模式
B Color Image Link Quote Code Smilies |上传

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表