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; ...
随机推荐
- Linux命令之hwclock
转载:http://codingstandards.iteye.com/blog/804830 用途说明 hwclock命令,与clock命令是同一个命令,主要用来查询和设置硬件时钟(query an ...
- A - Robot Bicorn Attack
Description Vasya plays Robot Bicorn Attack. The game consists of three rounds. For each one a non-n ...
- Android(java)学习笔记198:Android下的逐帧动画(Drawable Animation)
1.帧动画: 帧动画顾名思义,一帧一帧播放的动画就是帧动画. 帧动画和我们小时候看的动画片的原理是一样的,在相同区域快速切换图片给人们呈现一种视觉的假象感觉像是在播放动画,其实不过是N张图片在一帧一帧 ...
- Emacs 配置 Python 编程环境
python编程环境设置涉及到:自动完成.语法检查.虚拟环境. 为了不把系统搞乱,在python的虚拟环境中安装相关的插件. 一.安装python虚拟环境 virtualenvwrapper sudo ...
- Linux vsftp
本机环境CentOS-6.6-i386-bin-DVD1.iso安装盘.安装时选择minimal模式.本机IP地址配置为192.168.0.211. 1.查询系统是否已安装了vsftpd [root@ ...
- [转]Using Replacement Strings with Regex.Replace
本文转自:http://www.knowdotnet.com/articles/regereplacementstrings.html The String.Replace function has ...
- [改善Java代码]避免对象的浅拷贝
建议43: 避免对象的浅拷贝 我们知道一个类实现了Cloneable接口就表示它具备了被拷贝的能力,如果再覆写clone()方法就会完全具备拷贝能力.拷贝是在内存中进行的,所以在性能方面比直接通过ne ...
- MySQL数据库的存储结构
--把若干条sql语句封装起来,起个名字,叫做过程,也是没有返回值的函数 --把这个过程存储在数据库中->存储过程 --存储过程的创建过程 create procedure proceduceN ...
- Tomcat - 设置 HTTP 摘要认证
在 Tomcat 中设置 HTTP 摘要认证的示例 在 Tomcat 中设置摘要认证与设置基本认证几乎一样,差别在于配置 web.xml 时,<login-config/> 元素在指定认证 ...
- Linux 命令 - curl: transfer a URL
命令格式 curl [options] [URL...] 命令参数 -0, --http1.0 强制使用 HTTP/1.0 发送请求 -A, --user-agent 指定用户代理 -b/--cook ...