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; ...
随机推荐
- 使用coreData
1.设计数据模型 2.创建持久化视图和控制器 #import "BIDViewController.h" #import "BIDAppDelegate.h" ...
- 8张图带你理解Java整个只是网络(转载)
8张图带你理解Java整个只是网络 一图胜千言,下面图解均来自Program Creek 网站的Java教程,目前它们拥有最多的票选.如果图解没有阐明问题,那么你可以借助它的标题来一窥究竟. 1.字符 ...
- 配置hibernate出现的错误一
问题:2011-04-18 11:35:46,734 ERROR [org.hibernate.tool.hbm2ddl.SchemaUpdate] - could not complete sche ...
- HDU 2295 Radar (DLX + 二分)
Radar Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submi ...
- poj 3544 Journey with Pigs
Journey with Pigs Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 3004 Accepted: 922 ...
- css hack 大全 各个浏览器的css
各个浏览器的css hack区别属性: IE6: _zoom:1; IE6/7: *zoom:1; IE6/7/8/9 :\9 各个浏览器的css hack区别规则 IE6: *html{} IE7: ...
- Ehcache(2.9.x) - API Developer Guide, Searching a Cache
About Searching The Search API allows you to execute arbitrarily complex queries against caches. The ...
- Nginx - Core Module Directives
The following is the list of directives made available by the Core module. Most of these directives ...
- Git CMD - status: Show the working tree status
命令参数 git status [<options>…] [--] [<pathspec>…] 命令格式 --short, -s 短格式输出. -- long 长格式输出, ...
- C#中thrift 中THttpHandler 传输数据 慢 slow 解决办法
1. 在用c# 写thrift的服务端,来相应http请求,在用结构体传输时,会遇到一个问题,就是(在用网络)传输数据特别慢, 这是由于在发生数据是用的TStreamTransport 导致每传一个数 ...