焉知愚之乐
saojipo.com

易语言画板绘制自适应表格源码

pwind阅读(4639)

因为业务需求,需要生成一个订单信息的图片,于是就采用内存画板的方式写了一个自适应表格

  
子程序名返回值类型公开备 注
create_Tabble字节集 
参数名类 型参考可空数组备 注
区服名称文本型   
出售价格文本型  √
回收价格文本型  √
变量名类 型静态数组备 注
i整数型  
第一列数据文本型 8
x偏移整数型  
画板1内存画板  
第一列数据 = { “点券”, “9级”, “10级”, “11级”, “12级”, “13级”, “14级”, “15级” }
画板1.创建 (253, 291, #白色 )
画板1.刷子类型 (7) ' 颜色刷子
画板1.刷子颜色 (取颜色值 (255, 70, 70))
画板1.填充矩形 (0, 0, 253, 38)
画板1.画笔颜色 (取颜色值 (255, 70, 70))
画板1.画笔类型 (0)
画板1.画笔粗细 (1)
' 竖线
计次循环首 (4, i)
画板1.画直线 ( (i - 1) × 84, 38, (i - 1) × 84, 291)
计次循环尾 ()
' 横线
计次循环首 (9, i)
画板1.画直线 (0, i × 28 + 38, 253, i × 28 + 38)
计次循环尾 ()
' 表头
画板1.文本背景颜色 ( #黑色, 0)
画板1.字体大小 (“微软雅黑”, 14, 真)
画板1.置写出位置 (90, 7)
画板1.写文本行 (区服名称)
画板1.字体大小 (“微软雅黑”, 11, 真)
画板1.置写出位置 (25, 43)
画板1.写文本行 (“类 别”)
画板1.置写出位置 (96, 43)
画板1.写文本行 (“出售价格”)
画板1.置写出位置 (179, 43)
画板1.写文本行 (“回收价格”)
画板1.字体大小 (“微软雅黑”, 11, 假)
' 第一列
i = 0
计次循环首 (8, i)
判断 (i = 1)
x偏移 = 29
判断 (i = 2)
x偏移 = 31
判断 (i > 2)
x偏移 = 27
画板1.置写出位置 (x偏移, 43 + i × 28)
画板1.写文本行 (第一列数据 [i])
计次循环尾 ()
i = 0
' 第二列
计次循环首 (8, i)
判断 (i = 1 或 i ≥ 7)
x偏移 = 29 + 79
判断 (i ≥ 2 且 i < 4)
x偏移 = 31 + 86
判断 (i ≥ 4 且 i < 7)
x偏移 = 27 + 86
画板1.置写出位置 (x偏移, 43 + i × 28)
画板1.写文本行 (出售价格 [i])
计次循环尾 ()
i = 0
' 第三列
计次循环首 (8, i)
判断 (i = 1 或 i ≥ 7)
x偏移 = 29 + 79 + 83
判断 (i ≥ 2 且 i < 4)
x偏移 = 31 + 86 + 84
判断 (i ≥ 4 且 i < 7)
x偏移 = 27 + 86 + 82
画板1.置写出位置 (x偏移, 43 + i × 28)
画板1.写文本行 (回收价格 [i])
计次循环尾 ()
返回 (画板1.取图片 (, , ))

模块自行百度,也可采用支持库的画板,命令完全一致,把变量删了换成组件就可以了

帮网友写的一个易语言冒泡算法

pwind阅读(4349)

一个网友的作业,有点意思,用自定义数据类型方式加入学生信息,然后用冒泡算法排序学生信息,自定义数据类型很简单,就三个数组,但是在编辑框排序这个就很有意思了,用易语言自带的数组排序只能排序一个数组,三个数组的变动索引必须一致才能达到目的,思考了很久,只能自己写个冒泡算法对一个数组进行比对,其他数组跟着修改索引就好了,不知道是不是最简单的方法,贴出来记录一下吧。

  
窗口程序集名保 留  保 留备 注
窗口程序集_启动窗口   
变量名类 型数组备 注
student成绩信息0 

子程序名返回值类型公开备 注
__启动窗口_创建完毕  
初始化 ()
子程序名返回值类型公开备 注
初始化  
变量名类 型静态数组备 注
i整数型  
name文本型 0
age整数型 0
score小数型 0
j整数型  
name = { “张一山”, “张二川”, “张三丰”, “张四季”, “张五岳”, “张六顺”, “张七夕”, “张八戒”, “张九玲”, “张十美” }
age = { 15, 17, 16, 14, 18, 16, 19, 18, 17, 16 }
score = { 80, 60, 76, 89.5, 90, 90, 50, 80, 99, 78.5 }
重定义数组 (student, 假, 取数组成员数 (name))
编辑框1.加入文本 ( #title )
计次循环首 (取数组成员数 (name), j)
student [j].name = name [j]
student [j].age = age [j]
student [j].score = score [j]
计次循环尾 ()
计次循环首 (取数组成员数 (student), i)
如果 (寻找文本 (到文本 (student [i].score), “.”, , 假) = -1) ' 如果成绩存在小数点,那么调整加入文本格式让文本对齐
编辑框1.加入文本 (“| ” + student [i].name + “ | ” + 到文本 (student [i].age) + “ | ” + 到文本 (student [i].score) + “ | ” + #换行符 + “ —————————-” + #换行符 )
编辑框1.加入文本 (“| ” + student [i].name + “ | ” + 到文本 (student [i].age) + “ | ” + 到文本 (student [i].score) + “ | ” + #换行符 + “ —————————-” + #换行符 )

计次循环尾 ()
子程序名返回值类型公开备 注
_按钮2_被单击  
编辑框1.内容 = “”
编辑框1.加入文本 ( #title )
冒泡排序 ()
子程序名返回值类型公开备 注
冒泡排序  
变量名类 型静态数组备 注
i整数型  
j整数型  
age整数型  
name文本型  
score小数型  
计次循环首 (取数组成员数 (student), i)
变量循环首 (取数组成员数 (student) - 1, i, -1, j)
如果真 (按钮2.标题 = “按年龄排序” 且 student [j + 1].age < student [j].age 或 按钮2.标题 = “按成绩排序” 且 student [j + 1].score < student [j].score) ' 如果前一个数比后一个数大就交换两个数组成员的值,自定义数据内其他数组索引也跟随改变
age = student [j].age
name = student [j].name
score = student [j].score
student [j].age = student [j + 1].age
student [j].name = student [j + 1].name
student [j].score = student [j + 1].score
student [j + 1].age = age
student [j + 1].name = name
student [j + 1].score = score

变量循环尾 ()
如果 (寻找文本 (到文本 (student [i].score), “.”, , 假) = -1)
编辑框1.加入文本 (“| ” + student [i].name + “ | ” + 到文本 (student [i].age) + “ | ” + 到文本 (student [i].score) + “ | ” + #换行符 + “ —————————-” + #换行符 )
编辑框1.加入文本 (“| ” + student [i].name + “ | ” + 到文本 (student [i].age) + “ | ” + 到文本 (student [i].score) + “ | ” + #换行符 + “ —————————-” + #换行符 )

计次循环尾 ()
如果 (按钮2.标题 = “按成绩排序”)
按钮2.标题 = “按年龄排序”
按钮2.标题 = “按成绩排序”

数据类型名公开备 注
成绩信息 
成员名类 型传址数组备 注
name文本型  
age整数型  
score小数型