plus控件改变文本的颜色

By admin at 2019-10-21 • 0人收藏 • 656人看过

更新: 2019-10-22 一鹤校长改进了plus控件的color属性,

运行时修改color属性如果启用了编辑属性可同步修改内部编辑框字体颜色

可以很方便的修改plus的文本色了.

使用以下代码请升级到aardio最新版本



之前都是用skin() 来设置颜色, 但是这个的颜色只是和鼠标的各种交互用的.

这次突然用到直接修改颜色,  特此记录一下

image.png

import win.ui;
/*DSG{{*/
var winform = win.form(text="aardio form";right=759;bottom=335)
winform.add(
button={cls="button";text="第一种方法";left=15;top=217;right=222;bottom=299;z=2};
button2={cls="button";text="第二种方法";left=528;top=210;right=741;bottom=295;z=3};
plus={cls="plus";text="-12.34";left=12;top=47;right=361;bottom=182;border={color=-16777216;width=1};font=LOGFONT(h=-47;weight=700);z=1};
plus2={cls="plus";text="-12.34";left=393;top=47;right=742;bottom=182;border={color=-16777216;width=1};font=LOGFONT(h=-47;weight=700);z=4}
)
/*}}*/

//第一种方式: 直接改颜色color,立杆见影
winform.button.oncommand = function(id,event){
    var rod = tostring(math.random(111111,999999));
	winform.plus.color = tonumber("0xFF"++rod);
	winform.plus.text = rod
}

//第二种方式: 直接改颜色argbColor
winform.button.oncommand = function(id,event){
    var rod = tostring(math.random(111111,999999));
    winform.plus.argbColor = tonumber("0xFF"++rod);
    winform.plus.text = rod
    //注意此方式,如果没有更新文本信息,那么需要调用下面的刷新功能才会更新颜色
    //winform.plus.redrawTransparent();
}
//启用编辑模式,并修改文本颜色
winform.button2.oncommand = function(id,event){
    //第一步:启动编辑框先
	winform.plus2.editable = true;
    //修改为任意颜色
    var rod = tostring(math.random(111111,999999));
	winform.plus2.color = tonumber("0x"++rod);
	winform.plus2.text = rod
}


winform.show() 
win.loopMessage();

从上面的图中可以看出, 这两个方式有不同的应用场景:

第一个是模拟的static控件, 可以在属性里直接设置居中模式,

第二个是模拟的editbox输入框, 这个启用输入框功能后, 文字就会跑到输入框的上部, 必须利用plus的上下边距来调整位置,

第二个就是一个输入框, 可以鼠标进行选中操作, 但是第一个是static不能选择

2 个回复 | 最后更新于 2019-12-11
2019-12-11   #1

不错,收藏了!


//当文本可编辑启用后,文本垂直对齐将不起作用,需要用到setPadding来控制文本的边距

//第一步:启动编辑框先
    winform.plus2.editable = true;

winform.plus2.editBox.setPadding(35)


2019-12-11   #2

系统的edit控件不支持垂直对齐,

winform.plus.editBox.setPadding()的效用一拖动就会消失,

aardio实际上是反复调用这个函数来做修补。

plus控件有更简单的设置方法:

你可以直接在plus控件属性里指定文本边距( 简单的、可视化的、傻瓜似的 )

你可以把文本框放在控件内部的任何位置。

padding.jpg

不难找吧?!

至于经常有人问为什么有些控件的属性不能用 - 但是还可以选,被误导什么的。

其他开发工具这样不能用又放在那里的属性更多( 而且不写说明 ),也没有谁提出来觉得是个问题。


另外一般文本编辑框都没有垂直对齐这个概念。
这个垂直对齐也不是编辑框的属性,而是plus控件专用的属性。

edit.jpg
这些才是编辑框的属性。


登录后方可回帖

登 录
信息栏
本站永久域名:HtmLayout.Cn
纯私人站,当笔记本用的,学到哪写到哪,目前正在学aardio+halcon机器视觉.
Sciter中文在线文档Sciter在线学习文档
本 站 主 站:Stm32cube中文网
Aardio 官方站:Aardio官方
Aardio最新功能:Aardio官方更新日志
aardio在线手册Aardio在线手册
C大Aardio论坛:Aar爱好者论坛
简码教程网:简码编程
AARDIO语言QQ群:70517368
赞助商:才仁机械
下载站:非凡软件站
Loading...