zoukankan      html  css  js  c++  java
  • Demo学习: ClientEvents

    ClientEvents

    在控件的ClientEvents属性里嵌入JS代码,增加了开发的灵活性。

    分别在TUniPanel和TUniTimer的 ClientEvents事件里添加了JS代码:

    1. 通过JS代码来设置控件的属性:

    function Onmousemove(sender, x, y)
    {
        var W=MainForm.UniButton1.getWidth();
        var Y=sender.getHeight()-24; 
        MainForm.UniButton1.setPosition(x-W/2, Y);
    }
    
    function Onmousemove(sender, x, y)
    {
          MainForm.UniLabel1.setPosition(x, y);
    }
    
    function OnClick(sender, e)
    {
        MainForm.UniLabel1.setText('Click!');
    }
    
    function form.Onmousemove(sender, x, y)
    {
        MainForm.UniEdit1.setValue(x+' : '+y);
    }
    function OnMouseout(sender, e)
    {
        sender.setText('Out');
    }

    2. 使用Ajax进行一些数据操作:

    //开始执行操作
    procedure TMainForm.UniButton1Click(Sender: TObject);
    begin
      Sleep(3000); 
    end;
    //正在执行操作
    function OnAjaxRequest(sender, url, data)
    {
      sender.setText('Ajax request in progress...'); 
      sender.setDisabled(true);
    }
    //操作完成,在需要处理数据同步时,可以在这里处理。
    function OnAjaxCallback(sender, response)
    {
      sender.setDisabled(false); 
      sender.setText('UniButton123');
    }

    3. 相应键盘事件:

    function form.Onkeydown(sender, key, shift)
    {
       var xy=MainForm.UniPanel1.getPosition(true);
       var x=xy[0];
       var y=xy[1];
       
       var inc=5;
       if (shift & 1) inc=10;    // shift
       if (shift & 4) inc=1;   // ctrl
       if (shift & 2) inc=20;   // alt
       
       switch(key) {
          case 40 : y+=inc; break;          
          case 38 : y-=inc; break;          
          case 37 : x-=inc; break;          
          case 39 : x+=inc; break;          
       }       
       
       if (y<0) y=0;
       if (x<0) x=0;
       
       if (y>MainForm.form.getHeight())          y=MainForm.form.getHeight();
       if (x>MainForm.form.getWidth()) x=MainForm.form.getWidth();
       
       MainForm.UniPanel1.setPosition(x, y);
    }

    ClientEvents有很多JS属性,自己多多研究。 

  • 相关阅读:
    使用SQL语句创建SQL数据脚本(应对万网主机部分不支持导出备份数据)
    js和jquery页面初始化加载函数的方法及先后顺序
    熔断器原理
    List<T>线性查找和二分查找BinarySearch效率分析
    ASP.NET资源大全-知识分享 【转载】
    C#语法——委托,架构的血液
    SUPERSOCKET 客户端
    VS 中的几种注释方法
    计算机专业术语中英文对照
    2018服务端架构师技术图谱
  • 原文地址:https://www.cnblogs.com/fengxb/p/3108822.html
Copyright © 2011-2022 走看看