CHENI纯组件自定义列表框模块帮助文档

Cheni   ·   发表于 3个月前   ·   程序UI

当前最新版本:未命名


前言:

我之前写过很多用纯组件和复制窗口组件这个命令做出来的自定义列表的Demo

怎么说呢,它虽然动画效果可能并不会像自绘的那么舒服,但是它画起来比自绘更直观一些,你只需要放好一个表项,然后给上它一堆(如果没有这个模块之前)代码,他就可以给你自动生成出来

但是后来随着我做的越来越多此类的列表的时候,我发现,有很多重复的代码,并且每次我都要重新写一遍,于是为了节省今后的界面开发时间,我就开始写这个模块,这个模块只需要几行代码就可以自动完成剩下的步骤,而且容错率个人认为比较高,我发现的所有可能出错的结果我都进行了判断,并且保证即使出错了,程序不会直接停止运行,而是调试输出,这样就算是发布版本的程序使用起来也是没有问题的,只需要开发者及时发现并更新就好了,并不会导致程序无法运行

如图:现在我们要生成一个(其实左右两边一共两个)这样的界面
只需要这样几行代码就完成了

而在此之前我需要写一段比我的屏幕高度还高的代码他才能生成出来,并且如果我还要加更多的组件的话他会更长


代码解释:

一:创建以及生成表项

1. 首先我们要在程序变量中声明变量在类型中选择一个组件上限数量

【上限数量概念:比如说一个表项有5个标签,上限量为1000个组件,那我最多可以创建200个表项,而如果我想要更多的表项就需要选择更大数量上限的类】


2. 第二步我们要创建表项

而在创建表项之前我们需要添加表项中所需要的组件

添加方法:变量名.创建表项_添加[组件类型](母组件名称)

【母组件名称概念:就是说我们在创建表项之前,表项原型调用的那个组件的名称】

在我们添加完所有的表项组件之后只需要写上一段变量名.创建_表项()代码就可以对默认表项进行初始化了


3. 在创建完表项之后,列表并不能直接显示出来,因为你还没有告诉模块你需要生成多少个表项、以及没有声明列表载体。

首先声明列表体:

使用变量名.创建_列表载体(载体组件名称)

【列表载体概念:也就是说接下来生成的所有表项它都会显示在这个组件上,所有表项的位置可以随着载体的位置相对移动,但是要注意的是载体必须是所有表项中母组件的父组件(就是你把组件拖到载体之外之后它是看不见的)这一点很重要】

然后我们需要使用变量名.插入_单列表项(数量,间距)来生成多个表项

【参数说明:数量:即你想生成多少个这样的表项、间距:即每个表项之间的纵向间隔(单位为像素)】


做完这些我们的列表就创建完了


但是要特别注意的是组件之间的父子关系,即:除了在体外、其它所有组件均为载体的子组件、否则会出现组件无法显示的情况(后期可能会修复)

二:修改组件的属性【在修改属性中模块提供了两种方法:1、批量修改2、获取组件

首先是批量修改:


批量修改在这里使用变量名.修改_组件类型组件属性_批量(母组件,开始位置-1,修改结果[])

【说明:目前支持的批量修改类型有:标签、超级按钮、按钮的标题和图片框的图片

参数说明:

母组件:就是说我们在创建表项之前,表项原型调用的那个组件的名称

开始位置-1:(比如我要从第一个表项开始修改我就填零或者不写,如果要从第二个开始则写1[毕竟资深程序猿去十楼的话就会按下电梯上9这个按钮 |纵所皆知,程序总是从0开始| ]

修改结果:需要提供一个数组型参数)】

再说获取组件:

如图所示:调用的方法为:变量名.获取_组件类型(母组件,表项序号)

此方法的返回类型为:对应的母组件组件类型,但是需要特别注意的是:如果获取不到该组件比如母组件未参与到表项中或者表项序号超过了表项数量的情况,都会直接返回母组件本身,如果对其作了属性修改的话也会直接作用到母组件上,当然我们也可以通过计次循环来完成批量的效果。


注意:以上所有的代码即使加载出错也不会导致程序直接无法运行,而是会调试输出一段提示信息,可通过提示信息对调用代码进行修改容错率相对较高(由于发布时未检测、下列代码【响应组件事件】可能会引起程序强制退出)


但是要特别注意的是,一但组件被添加到表项中,即使未生成列表它的可是也是为假【但是程序本身依然可以对该组件做出属性修改】


三:响应组件事件

【特别声明:此处所用的获取方法调用的是组件的标记这个属性,这个属性是在创建列表的时候赋值进去的,如无特别需要请勿对其修改,否则无法响应事件!!!】


需要表项的相应组件处理事件只需要对其母组件进行操作即可(比如:我想要单击表项中的某一个超级按钮,我只需要对它的母组件那个超级按钮绑定事件就可以了)

响应方法如图所示,这里有一个很关键的步骤,就是实际被单击组件(也可理解为实际响应组件)该变量类型需要与母组件也就是触发事件的组件类型一致比如途中的类型就为超级按钮,而获取事件组件的方法就是让这个变量=取事件组件()即可

而我们需要使用表项中的组件调用表项中的另一个组件则只需要按照上面的变量名.获取_组件类型(母组件,表项序号)即可

此处表项序号的填写方法为:到整数(实际响应组件.标记),同理如果我们想要改变上一个组件则只需要到整数(实际响应组件.标记) - 1即可


模块缺点:
现在暂时只支持:标签、图片框、按钮、超级按钮这四种组件,后期我会继续更新此模块,会支持更多的组件等


并且后期会更新:多列表项列表、自适应内容高度、宽度列表、更多表项批量属性修改等功能,如需更新请在调试的时候添加:“类名称.帮助文档及更新 ()”代码即可访问模块官网。

模块和例程在附件列表里,模块源码需要回复下载,各位有兴趣的小伙伴也可以对模块进行二次修改或升级,注意官方版本只有本贴附件中提供的版本!

0 Reply   |  Until 3个月前 | 582 View
LoginCan Publish Content