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

  • 相关阅读:
    ASP.NET 2.0 中的代码隐藏和编译
    魅族M8 UI新架构
    详细讲解大型数据库的设计原则与开发技巧
    [ZT]精彩的国外育儿教育读本,图文并茂
    企業導入ERP項目要防止「君子」作亂
    [ZT]VS2005 中 Lc.exe已退出,代码为 1,今天剛遇到就找了
    图像词汇
    VS2005 + VSS2005 的方法
    几种SQL Server数据库分页方式
    DB2 Express版与SQL Server标准版技术比较
  • 原文地址:https://www.cnblogs.com/fengxb/p/3108822.html
Copyright © 2020-2023  润新知