查看: 94|回复: 0

小白制作图形库第三课 图形样式设计基础中

[复制链接]

13

主题

53

帖子

1239

积分

版主

Rank: 7Rank: 7Rank: 7

积分
1239
发表于 2024-5-3 21:46:43 | 显示全部楼层 |阅读模式
本帖最后由 libai500 于 2024-5-4 13:37 编辑

上一课 图形样式设计(上)从“在文本中搜索文本位置”图形库说起
    有道是
    独有英雄驱虎豹,更无豪杰怕熊罴。
    我们迎难而上,趁热打铁,研习第三课,图形库制作之图形样式设计(中)。
正文
第一节 从“截取文本”功能说起
image.png

image.png
    如上图,笔者对图中的图形指令做了功能描述,可以想象,如果笔者不做功能描述,可能没有人能知道这个指令的使用要领。这个图形指令样式设计与它的功能差强人意,那么它应该设计成什么样子呢?
image.png
    如上图,笔者重新 策划了一下图形样式,现在看上去是不是更容易理解和上手了。
    好,接下来我们就讲解如何建立这个图形库。
第二节 导入上一课的张三文本处理库1.0.2

image.png


image.png

image.png
    如上图,导入上一课给大家留下的张三文本处理库1.0.2版。
第二节 在旧图形库中新加图形块
第一步 新建图形块

image.png
    如上图,新建,复制,导入,都能添加图形块。为了重新讲解图形块的完整搭建过程,我们选择新建。
image.png
    如上图,点击新建后,系统添加了一个默认图形块。
第二步 为新加图形块命名
    一个图形库中可以有多个图形块,我们新建一个图形块后,必须先为它重新命名,后期操作中,很多步骤需要基于一个合理的图块名。

image.png
    如上图,我们平白直叙,图形块名字就叫“张三_文本处理库_截取文本块”的汉语拼音,名称结构为:作者_库名_图块名,这种大白话形式的命名很重要,它能确保当库意外丢失时,最大限度帮助你获知是哪一个库丢失了,从而能让你尽快找回它。
第三步 初步部署图形开孔
image.png
    如上图,我们迅速放置三个“值输入”框,也就是开孔框,分别命名为V1V2V3作为三个参数。
    “值输入”框从何而来,以及值输入框的作用,在上几篇文章中均由详述。本篇略过。
第四步 初步编纂文本描述语
image.png
    如上图,简单编写描述文本,使图形块看上去具有一定可读性,让使用者不用过多翻阅资料就能会使用它。
    因本图形是截取文本,截取到的内容需要提交给左侧接收它,因此我们连接方式设为左侧连接。

    “文本条”从何获得,前几篇文章已经详细介绍过,本篇略。
第五步 保存并在XML文件中发布新图形块

image.png
    如上图,先保存图形块,然后点击XML文件编辑。
image.png
    如上图,点开XML编辑画面后,我们看到上一节课保存好的“文本查找”指令的XML文档内容。
    因我们刚才新建的图形块于“文本查找”图形块样式差不多,我们可以直接复制文本查找图形块的XML内容,简单修改一下,完成“文本截取”图形块的XML发布。
    XNL文本,决定了图形块在图形化菜单中的输出样式,如果未编辑或编辑错误,图形菜单中就不会出现这个图形块。
image.png
    如上图,两个图形块的格式大致一样,因此我们需要改的地方不多。
    1是修改一下图块名字,这是必须的。
    2是要修改一下V2参数,由文本性质变为数字性质,并默认为0,因为文本索引位置是从0开始的,0为首位置。
    3是要修改一下V3的默认值,我们默认截取1个字节。因此改为1.
image.png
    如上图,我们按照要求修改好了。笔者在这里要嘱咐一下:XML文档中,模块名字一定要正确,通常是全部小写,,笔者也多次尝试使用大小写混合,不是很顺利。因此我们尽量用小写命名模块。一旦XML中,模块命名不正确,图形菜单中将不会出现正确的图形块。
image.png
    如上图,我们先点击保存,ESC退出XML画面,再点击预览。
image.png
    如上图,在预览画面上的图形菜单里,我们看到了我们刚编辑好的信息图形“截图文本”指令。图形样式设计完成。
第三节 “截取文本”图形代码设计
第一步 清场

image.png

image.png
    如何长图,我们把新建图形块的默认内容清楚,重新设计。
第二步 分析代码结构
image.png
    如上图,本课开头我们说所,我们是讨论如何改进图形样式设计,并不改动图形的代码部分。因此我们返回头查看一下原有图形的代码。从而分析V1,V2,V3参数是如何拼凑的。
    我们看到,我们只要顺利拼凑出“String("ABCD").substring(0,1)”这句代码,并将V1,V2,V3参数正确插入,即可完成代码设计。
第三步 拼接V1部分代码
image.png

image.png
    如上图,我们完成了对V1代码的拼接。
第二步 拼接V2部分代码
image.png

image.png

image.png
    如上图,先添加两个插槽,在填写V2相关代码内容。完成V2部分代码的拼接。
第四步 拼接V3部分代码
image.png
    如上图,我们到了关键环节,在这里我们需要做一个算法改进。原图形程序V3实际上是截取文本的结束位置,并且是1为首位,我们设计意图是V3为截取长度。因此我们需要把截取长度V3转换为截取结束位置。算法如下:
    结束位置=起始位置+截取长度
image.png
    如上图,我们完成了最后V3的代码,一个逗号一个括弧,V2+V3的截取长度转结束位置的算法。可以擦擦汗了。
第五步 预览代码编辑效果
image.png
    如上图,我们先保存图形,再点击预览。
image.png

image.png
    如上图,我们对比一下新编代码和原图代码是不是一样。看上去没什么问题。图形块代码设计部分结束。
第四节 打包发布并测试新图形
第一步 版本升级,命名ZIP文件

image.png

image.png

image.png
    如上图,我们升级版本为1.1.0,无需头文件库,无需封面。最后保存库文件用中文命名,协商版本号。
第二步 导入这个新建的本地库
image.png
    如上图,我们导入刚新建的1.1.0张三文本库。导入方法前几届课有介绍,本文略。
第二步 编写一个测试程序

image.png
    如何闪图,我们编写一个串口接收程序,程序中,无论接受到什么内容,都从第二个位置开始截取3个字节内容,并返回到串口1,打印原始字符串,截取后的字符串,和分割符。
    我们看看效果:
image.png
    如上图,我们通过串口助手发送了ABCDEFG和1234567两个字符串。概图形指令按照要求,从第2位置开始截取了3个字符回来。至此我们完成对文本截取图新的样式设计的改进,还初步探索了算法的改进,我们本节课就讲到这里。谢谢朋友们关注,谢谢老师们指导。
    最后留给大家一个思考题,文本截取起始位置是0,这看上去很别扭,如何把位置位置0改为起始位置是1?
    下面我们把测试程序和本节课的图形库奉献给大家学习研究用。
本节图形库:
张三文本处理库1_1_0.zip (21.55 KB, 下载次数: 1)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|好好搭搭在线 ( © 好好搭搭在线 浙ICP备19030393号-1 )

GMT+8, 2024-5-18 19:10 , Processed in 0.110855 second(s), 25 queries .

Powered by Discuz!

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表