找回密码
 立即注册

微信登录

只需一步,快速开始

QQ登录

只需一步,快速开始

查看: 14|回复: 0

[心得] aardio事件响应

[复制链接]
  • TA的每日心情
    开心
    昨天 09:07
  • 签到天数: 28 天

    连续签到: 2 天

    [LV.4]偶尔看看III

    19

    主题

    32

    回帖

    409

    积分

    中级会员

    积分
    409
    来自: 中国贵州贵阳
    发表于 昨天 10:54 | 显示全部楼层 |阅读模式 来自: 中国贵州贵阳
    非业余 - aardio 编程语言 - 非官方问答社区
    风行者三期培训:Aardio+Python+Flutter,1000集课程让你成为全栈开发高手!https://mp.weixin.qq.com/s/_WOoHFtITUyLk2k7BXYGkg
    Aardio培训大揭秘,轻松上手打造个人项目!https://mp.weixin.qq.com/s/cr47qhp_Cpz0p57lbbPwug
    aardio风行者第二期培训班https://mp.weixin.qq.com/s/uB6XHUDnGSk0JlWuiBE9AA
    aardio风行者第三期培训班https://mp.weixin.qq.com/s/cdZcvFiAWhlYTaSrQGCPvA

    事件响应机制
    今天接触编程中的事件响应机制,感觉就像给程序赋予了对外界变化做出反应的能力,特别神奇!

    按钮点击:程序的积极反馈
    先从按钮点击事件入手。这就如同现实中按下开关会有相应动作,在程序里给按钮设定好规则,点击它就能触发特定操作。我写了段代码创建了一个小窗口,里面有个按钮,上面写着“触发惊喜”。当我点击这个按钮时,程序弹出一个消息框,显示“惊喜已触发!”,特别有趣!

    [AAuto] 纯文本查看 复制代码
    import win.ui;
    /*DSG{{*/
    var winform = win.form(text="按钮点击乐趣多";right=350;bottom=180)
    winform.add(
    button={cls="button";text="触发惊喜";left=130;top=70;right=220;bottom=110;z=1}
    )
    /*}}*/
    
    winform.button.oncommand = function(id,event){
        win.msgbox("惊喜已触发!")
    }
    
    winform.show()
    win.loopMessage()

    窗口关闭:确认与保留
    接着研究窗口关闭事件。以往关闭窗口没多想,现在明白程序在背后其实有处理逻辑。我编写的代码让关闭窗口时弹出确认框,询问“真的要离开这个奇妙窗口吗?”,如果选择“确定”,窗口就会关闭;要是选“取消”,窗口会继续保留,就好像在提醒自己再考虑考虑

    [AAuto] 纯文本查看 复制代码
    import win.ui;
    /*DSG{{*/
    var winform = win.form(text="窗口关闭确认体验")
    winform.add({
        button={cls="button";text="关闭窗口";left=550;top=360;right=680;bottom=400; 
        };
    })
    /*}}*/
    
    winform.button.oncommand = function(){
        var closed = win.msgboxTest("真的要离开这个奇妙窗口吗?")
        if(closed == "确定"){
            winform.close();  
        } else {
            win.msgbox("窗口继续陪伴你!")
        }
    }
    winform.show();
    win.loopMessage();

    鼠标移动:位置追踪
    鼠标移动事件也很有意思。我写的代码能让鼠标在窗口内移动时,实时在窗口中的文本框显示鼠标的坐标位置,就像程序在默默地追踪鼠标的动向。

    [AAuto] 纯文本查看 复制代码
    import win.ui;
    /*DSG{{*/
    var winform = win.form(text="鼠标位置追踪";right=350;bottom=180)
    winform.add(
    edit={cls="edit";left=10;top=10;right=300;bottom=170;ah=1;aw=1;edge=1;multiline=1;z=1}
    )
    /*}}*/
    
    import mouse.hook;
    var coordinate = mouse.hook();
    
    coordinate.proc = function(msg,x,y){
        winform.edit.print("鼠标此刻坐标:",x,y)        
    } 
    winform.show();
    win.loopMessage();
    综合练习:功能大集合
    最后挑战了综合习题,做了一个带按钮和文本框的窗口。点击“显示内容”按钮能把文本框里的内容显示在消息框中;点击“关闭窗口”会弹出确认框,询问是否真要关闭;点击“获取鼠标位置”,再点击鼠标就能在文本框显示鼠标位置。经过一番尝试,代码成功运行,看着程序按预期做出反应,满满的成就感!看来编程就是不断把小功能组合起来实现更强大的效果,我得继续加油!
    [AAuto] 纯文本查看 复制代码
    import win.ui;
    import mouse.hook;
    /*DSG{{*/
    var winform = win.form(text="综合功能体验";right=350;bottom=180,topmost=1)
    winform.add(
    button={cls="button";text="显示内容";left=10;top=120;right=100;bottom=160;z=1};
    button2={cls="button";text="关闭窗口";left=250;top=120;right=330;bottom=155;z=3};
    button3={cls="button";text="获取鼠标位置";left=130;top=120;right=220;bottom=155;z=4};
    edit={cls="edit";left=20;top=20;right=300;edge=1;bottom=90;ah=1;aw=1;multiline=1;z=2}
    )
    /*}}*/
    
    winform.button.oncommand = function(id,event){
        var text = winform.edit.text;
        win.msgbox("文本框内容是:"+text)
    }
    
    winform.button2.oncommand = function(){
        var closed = win.msgboxTest("真的要关闭这个窗口吗?")
        if(closed == "确定"){
            winform.close();  
        }    
    }
    
    winform.button3.oncommand = function(id,event){
        var coordinate = mouse.hook();
        coordinate.proc = function(msg,x,y){
            select(msg) {
                case 0x201/*_WM*/{
                    winform.edit.print("鼠标位置:",x,y)
                }        
            } 
        }
    }
    
    winform.show()
    win.loopMessage()


    非业余 - aardio 编程语言 - 非官方问答社区
    风行者三期培训:Aardio+Python+Flutter,1000集课程让你成为全栈开发高手!https://mp.weixin.qq.com/s/_WOoHFtITUyLk2k7BXYGkg
    Aardio培训大揭秘,轻松上手打造个人项目!https://mp.weixin.qq.com/s/cr47qhp_Cpz0p57lbbPwug
    aardio风行者第二期培训班https://mp.weixin.qq.com/s/uB6XHUDnGSk0JlWuiBE9AA
    aardio风行者第三期培训班https://mp.weixin.qq.com/s/cdZcvFiAWhlYTaSrQGCPvA
    回复

    使用道具 举报

    *滑块验证:
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    Archiver|手机版|小黑屋|非业余 - aardio 编程语言 - 非官方问答社区 知道创宇云防御

    GMT+8, 2025-4-29 02:02 , Processed in 0.123480 second(s), 30 queries .

    Powered by Discuz! X3.5

    © 2001-2025 Discuz! Team.

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