metaProperty属性的使用

By admin at 2017-12-26 • 0人收藏 • 1099人看过
//先导入
import util.metaProperty;

// 画笔
pen = class {
	ctor (...) {
		this = ..win.graphics.object();
		this.init = function (style = 0x0/*_PS_SOLID*/, width = 1, color = 0) {
			this.destroy();
			
			if (type(style) != type.number)
				error("(1) style 参数错误", 2);
			if (type(width) != type.number)
				error("(2) width 参数错误", 2);
			if (type(color) != type.number)
				error("(3) color 参数错误", 2);
			
			this.handle = ::CreatePen(style, width, color);
			
			// 记录属性
			this.nStyle = style;
			this.nWidth = width;
			this.nColor = color;
			
			if (this.canvasHandle)
				::SelectObject(this.canvasHandle, this.handle);
		}
		this.init(...);
	}
	
	@_metaProperty;
}
pen._metaProperty = ..util.metaProperty(
	style = {
		_get = function () {
			return owner.nStyle;
		}
		_set = function (v) {
			owner.init(v, owner.width, owner.color);
		}
	}
	width = {
		_get = function () {
			return owner.nWidth;
		}
		_set = function (v) {
			owner.init(owner.style, v, owner.color);
		}
	}
	color = {
		_get = function () {
			return owner.nColor;
		}
		_set = function (v) {
			owner.init(owner.style, owner.width, v);
		}
	}
);


登录后方可回帖

登 录
信息栏
公告:
个人博客
专注分享
谢谢合作!

本站域名:HtmLayout.Cn
aardio可以快速开发上位机,本站主要记录了学习过程中遇到的问题和解决办法及aardio代码分享

这里主要专注于aardio学习交流和经验分享.
纯私人站,当笔记本用的,学到哪写到哪.

Aardio 官方站:Aardio官方
Aardio最新功能:Aardio官方更新日志
本 站 主 站:Stm32cube中文网
Sciter中文在线文档Sciter在线学习文档
空间赞助:才仁机械
打赏本站
Loading...