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();
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属性,自己多多研究。
Demo学习: ClientEvents的更多相关文章
- 《IT蓝豹》吹雪花demo,学习android传感器
吹雪花demo,学习android传感器 吹雪花demo,学习android传感器,嘴巴对着手机底部吹一下就会出现飘着雪花效果. 算是学习android传感器效果.本例子主要是通过android.me ...
- [Unity3D]做个小Demo学习Input.touches
[Unity3D]做个小Demo学习Input.touches 学不如做,下面用一个简单的Demo展示的Input.touches各项字段,有图有真相. 本项目已发布到Github,地址在(https ...
- 百度mobile UI组件GMU demo学习1-结构和初始化
移动web现在已经是zepto的天下,但是一直找不到合适UI库,找了一段时间,终于找到了百度的ui库gum和inter 的 appframework UI库 相比之下,百度的UI库更接地气,配合百度强 ...
- ShadowGun Demo学习(非技术向)
主要针对拿来主义,并对一些使用范围广的shader进行研究.虽然是4,5年前的demo,但还是有学习价值的 1.GodRays MADFINGER/Transparent/GodRays 传统的上帝之 ...
- 微信小程序官方demo学习
最近微信小程序很火,很喜欢那种轻应用,用完就走的理念.于是,下载好微信开发者工具,学习一下官方demo. 体验下来,有类似react和vue的感觉,dom类似react那种组件的,data-bindi ...
- Cesium学习笔记(七):Demo学习(自由控制飞行的飞机)[转]
https://blog.csdn.net/umgsoil/article/details/74923013# 这是官方的教程Demo,名字叫Use HeadingPitchRoll,顾名思义,就是教 ...
- 如何写好demo——学习感悟
文章标题:教你如何写好Demo应用 如何制作出最有用的demo呢? 简,易 在demo中,我们要专注于单一的主题.我们的教学覆盖了很大的知识范围,因此,化整为零是非常必要的. 例如,我们要说明Andr ...
- unity3d入门 Demo 学习记录
闲来学习一下 unity3d 的Demo,记录如下. 官方 Demo,名字为 Roll-A-Ball,如图 场景比较简单,包含地面.玩家精灵.主摄像机.墙壁.可拾取的方块.分数为示 text.平行光源 ...
- BNR Android Demo学习笔记(一)——CrimeIntent
开发环境:win7,Android Studio 1.2, 1.Model Crime,数据模型,每个Crime有一个UUID作为唯一标识. package tina.criminalintent; ...
随机推荐
- SQL Server 之 在数据库之间进行数据导入导出
1.同一服务器上数据库之间进行数据导入导出 (1).使用 SELECT INTO 导出数据 在SQL Server中使用最广泛的就是通过SELECT INTO语句导出数据,SELECT INTO语句同 ...
- nodejs的mysql模块学习(四)断开数据库连接
断开连接有两种方式 end()函数 在这种情况下 所有先前排队的查询 仍然可以继续继续发送到服务器,但是如果在执行到断开连接的命令之前发生了致命的错误,那么end()将不会被执行 connection ...
- Android(java)学习笔记107-1:通过反射获得带参构造方法并且使用
反射获得带参构造方法并且使用: 1. 获取字节码文件对象 Class c = Class.forName("cn.itcast_01.Person"); 2.获取带参构 ...
- eclipse插件svn 提交时报:"svn is already locked"解决方法
在出错文件夹下,鼠标右键TortoiseSVN->Clean up. SVN错误:Attempted to lock an already-locked dir 1.出现这个问题后使用“清理”功 ...
- [改善Java代码]三元操作符的类型务必一致
建议三: 三元操作符是if-else的简化写法,在项目中使用它的地方很多,也非常好用,但是好用又简单的东西并不表示就可以随便用,我们来看看下面这段代码: public class Client { p ...
- win8.1恢复win7 CTRL+Space切换输入法
win8用起来还是有很多好用的东西的,但是最让我受不了的就是输入法的切换,可以说是丧心病狂!!!折磨了我好久,今天终于找到了解决的办法! 那就是这位博客园的哥们给出的方案! http://www.cn ...
- windows server 2008下装SQL 2008R2x64
1. 在windows server 2008下装SQL 2008出现 This SQL Server Setup media is not supported on a X64 system 使用虚 ...
- jQuery选项卡插件、Tabs插件
效果图: <!DOCTYPE html> <html> <head> <title></title> <script src=&quo ...
- 基于DIV+ul+li实现的表格(多示例)
一个无序列表biaoge,前四个列表项我们赋予了类biaotou.因为这四个项是表格头部,应该与表格数据有所区别.所以单独赋予了类,可以方便控制.下面我们开始CSS代码的编写:由 www.169it. ...
- 使用python发送Email
import smtplib from email.mime.text import MIMEText def SendEmail(): email = "" #设置收件地址 ma ...