aardio 文档
aardio 范例: 在富文本框输入带颜色字体
请参考文档
//修改颜色样式
import win.ui;
import win.ui.ctrl.pick;
/*DSG{{*/
var winform = win.form(text="在富文本框输入带颜色字体";right=840;bottom=514)
winform.add(
btnCopyRtf={cls="button";text="复制 RTF 代码";left=43;top=478;right=170;bottom=508;db=1;dl=1;z=5};
btnDemo={cls="button";text="输入示例颜色字体";left=181;top=478;right=346;bottom=508;db=1;dl=1;z=2};
colorPicker={cls="pick";text="自定义控件";left=382;top=19;right=824;bottom=473;db=1;dl=1;dr=1;dt=1;z=3};
richedit={cls="richedit";left=22;top=19;right=371;bottom=473;db=1;dl=1;dr=1;dt=1;edge=1;hidesel=false;multiline=1;z=1};
splitter={cls="splitter";left=373;top=19;right=378;bottom=473;db=1;dl=1;dt=1;frame=1;z=4}
)
/*}}*/
//响应按钮事件
winform.btnDemo.oncommand = function(id,event){
/*
追加文本,支持任意个文本参数或样式表参数。
每个样式都会修改后面文本的样式,如果指定了样式表,函数返回前会恢复默认样式。
样式表可指定 CHARFORMAT2 结构体或者部分需要修改的字段即可。
请参考文档:
https://www.aardio.com/zh-cn/doc/library-guide/std/win/ui/ctrl/charformat2.html
*/
winform.richedit.appendText(
{ textColor = 0xFF0000 },
" ","蓝色文本",
{ protected = true, point = 16 },
" ","绿色文本",
{ textColor = 0x0000FF,point = 8 },
" ","红色文本1", " ","红色文本2", " ","红色文本3",
);
winform.richedit.appendText("默认样式");
/*
下面这样写也可以,等于传了一个表参数并省略了外层大括号{}。
函数会自动展开参数表的数组成员作为其他调用参数,可指定多个文本参数。
*/
winform.richedit.appendText( textColor = 0xFF0000, "蓝色文本" )
}
winform.splitter.split(winform.richedit,winform.colorPicker);
winform.colorPicker.onColorChange = function(argb){
winform.richedit.setSelCharformat(
textColor = gdi.rgbReverse(argb)
)
}
winform.richedit.onSelChange = function(min,max,typ){
var f = winform.richedit.getSelCharformat()
winform.colorPicker.setColor( f.textColor,true );
}
winform.btnCopyRtf.oncommand = function(id,event){
winform.btnCopyRtf.disabledText = ["✶","✸","✹","✺","✹","✷"];
win.clip.write( winform.richedit.rtf );
thread.delay(500);
winform.btnCopyRtf.disabledText = null;
}
winform.show();
win.loopMessage();
Markdown 格式