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属性,自己多多研究。 

  • 相关阅读:
    django项目环境搭建备忘
    Python IDE的选择和安装
    MAC上python环境搭建
    hadoop1.2.1+hbase0.90.4+nutch2.2.1+elasticsearch0.90.5配置(伪分布式)
    ubuntu下hadoop完全分布式部署
    ubuntu下集群设置静态ip
    C语言调用库函数实现生产者消费者问题
    poj 1703(带权并查集)
    poj 1330
    poj1724
  • 原文地址:https://www.cnblogs.com/fengxb/p/3108822.html
Copyright © 2011-2022 走看看