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

  • 相关阅读:
    Codeforces Round #629 (Div. 3) (A ~ F)
    st表
    Educational Codeforces Round 81 (Rated for Div. 2)
    hihocoder#1996 : 01匹配
    P2056 [ZJOI2007]捉迷藏
    P2495 [SDOI2011]消耗战
    GUETOJ1335
    优先队列重载比较运算
    CCF认证201909-4 推荐系统
    P3178 [HAOI2015]树上操作
  • 原文地址:https://www.cnblogs.com/fengxb/p/3108822.html
Copyright © 2011-2022 走看看