1. 在aardio 中使用颜色
在aardio中平时我们使用颜色是怎样使用的?相信基本都是去找颜色工具然后复制相应的的值(除非你能记住这些颜色的值),在dotNet中有个System.Drawing.Color 是一个用于表示颜色的类,它是在.NET Framework中定义的。它提供了一系列用于创建、操作和表示颜色的属性和方法。
但是,用aardio使用它并没有智能提示,所以,本人在 非官方扩展库 中加入System.Drawing.Color 库,它里面只有智能提示,方便我们使用时能看到中文名称。即使你不安装这个库也能运行。安装后写代码就有中文提示
2. 应用例子
很多人不知道富文本控件其实可以设置每行的字体颜色和背景颜色,下面例子结合System.Drawing.Color 设置富文本控件每行字体和背景颜色:
import win.ui;
import gdi;
import System.Drawing;
/*DSG{{*/
var winform = win.form(text="aardio form";right=565;bottom=469)
winform.add(
button={cls="button";text="添加并设置颜色";left=182;top=35;right=346;bottom=103;z=1};
richedit={cls="richedit";left=7;top=118;right=558;bottom=463;edge=1;multiline=1;z=2}
)
/*}}*/
dc = System.Drawing.Color
winform.richedit.printColor = function(data,color,bkcolor){
if(!data) return ;
//gdi.rgbReverse 将颜色中的R,B位置互换
if (color) color = gdi.rgbReverse(color)
if (bkcolor) bkcolor = gdi.rgbReverse(bkcolor)
//不能用print,否则只会最后一行显示颜色
owner.appendText(data,'\n');
owner.lineSel(-2) //因为最后一行总是空白的(只有一个换行符),所以应该是设置倒数第二行
owner.setSelCharformat(textColor = color;backColor = bkcolor);
owner.deselect();
}
winform.button.oncommand = function(id,event){
winform.richedit.printColor("你好",dc.Blue,dc.Aquamarine)
}
winform.show();
win.loopMessage();