会哭的梧桐树 发表于 2014-1-30 22:57:20

【审核】@include Guide @Include指南

本帖最后由 会哭的梧桐树 于 2014-2-3 13:57 编辑

@Include指南
Tipby Brian and Smurfier

@include虽然是个简单的工具,但却同样是个功能强大的工具。利用它可以将一段很长的代码分割成多个短小的文件。在多个皮肤中重复的代码也可以被管理在一个文件中。它甚至可以在你打开皮肤时载入不同的代码。

使用@include
使用@include有一系列规则。首先是@include的声明。
@include=SomeFile.inc提示:@include必须写在一个节点下。一般皮肤的作者是直接将它写在或节点下。
然后是你引入的文件。
SomeVariable=AValue被引入的文件必须按照INI文件格式书写,也就是它包含有效的节点、选项和选项值。上面这个引用是引入的节点。
如果你需要引入更多的文件,只要用不同的标识来声明就可以了。@include=SomeFile.inc
@include2=SomeOtherFile.inc
@includeAnotherInclude=YetAnotherFile.inc
...虽然被引用的文件并不必须是.inc扩展名,但我们强烈建议你使用.inc扩展名,以避免文件被显示在Rainmeter的皮肤列表中。
我们同样可以在@include声明中使用变量,但注意这里不能使用动态变量。
Theme=SomeTheme
@include=#Theme#/SomeFile.inc
理解@include
当Rainmeter读到一个@include行时,它将读取给定的文件,并将所有已经存在的节点的选项放到各自的节点中,最后将被引用文件剩余的部分直接插入到当前声明@include的节点之后。
SomeFile.inc
Meter=Image
H=30
W=40


Text=这行设置不会应用

YourSkin.ini

@include=SomeFile.inc


Meter=Image
H=20
W=30
X=5r


Meter=String
Text=这行设置会保留
上面的代码会把Background节点放在Foreground节点前。因为String节点已经存在,且@include声明在String节点之前,因此String节点中任何存在的选项都不会改变。在这个例子中,Text行仍然是“这行设置会保留”。
(对于节点导入顺序以及冲突选项的处理详见手册的@include节。)


实际使用:皮肤设置
@include最常见的用法是让用户在一个单独的文件中修改某个皮肤的设置。
Setting.inc
BackgroundImage=SomeImage.png
HideBackground=0

Skin.ini

@include=Settings.inc


Meter=Image
ImageName=#BackgroundImage#
Hidden=#HideBackground#
实际使用:翻页与切换样式
@include另外两个用途是可以实现皮肤的翻页和切换样式。(用MeterStyle同样可以实现,而使用MeterStyle就不需要刷新皮肤。)这两个功能的实现都得益于@include声明中可以使用变量这个前提。
首先制作不同的页面,只要把每页的内容写在单独的文件中,并把所有的文件按顺序命名。在主皮肤中我们定义一个变量来进行翻页。
Page=1
@include=Pages\PageNum#Page#.inc在主皮肤中我们使用!WriteKeyValue命令来改变页码。只要记住每次改变页码变量后我们需要刷新皮肤这样新的设置才会被应用。[!WriteKeyValue Variables Page 2][!Refresh]实现切换样式的功能与上面完全一样。与包含很多的Meter不同,每一个样式集只要包含定义了皮肤外观的MeterStyle就可以了。




囧囧无力 发表于 2014-2-1 09:47:06

我是来说题外话的。。
“如果你需要引入更多的文件,只要用不同的标识来声明就可以了。
@include=SomeFile.inc
@include2=SomeOtherFile.inc
@includeAnotherInclude=YetAnotherFile.inc”

这边我去试了一下,发现@include后加中文也行,比如“@include囧囧无力=囧爷是攻.txt”也能被识别=0=以前以为只能加阿拉伯数字呢。。

语笑嫣然 发表于 2014-2-1 11:42:21

其摆放顺序对皮肤的影响,比如放在最尾就是最后读取。不同的代码顺序对执行速度也不同————来自某蜜蜂的建议

傻大个牌纯碱 发表于 2014-2-1 14:50:26

花花说的很对。

会哭的梧桐树 发表于 2014-2-3 14:16:38

@suixin812

1、但却同样是个功能强大的工具 但和却的意思重复了。都是转折,删掉却。

2、(对于节点导入顺序以及冲突选项的处理详见手册的@include节。)这个难道不是@include节么?我在英文文档里面没找到这一句话,所谓的手册不是这个手册么?

会哭的梧桐树 发表于 2014-2-3 14:18:17

语笑嫣然 发表于 2014-2-1 11:42
其摆放顺序对皮肤的影响,比如放在最尾就是最后读取。不同的代码顺序对执行速度也不同————来自某蜜蜂的 ...

不同的代码顺序对执行速度也不同

求例子。没例子没办法理解。执行速度和文件摆放顺序有关系么?

或者说的不是代码执行速度?而是皮肤载入速度什么的?

suixin812 发表于 2014-2-5 18:09:53

会哭的梧桐树 发表于 2014-2-3 14:16
@suixin812

1、但却同样是个功能强大的工具 但和却的意思重复了。都是转折,删掉却。


我说的是Reference->Skins->@Include Option 中

suixin812 发表于 2014-2-5 18:10:54

会哭的梧桐树 发表于 2014-2-3 14:18
不同的代码顺序对执行速度也不同

求例子。没例子没办法理解。执行速度和文件摆放顺序有关系么?


和加载速度没关系,和加载顺序有关系。这里面有一个覆盖的关系。

suixin812 发表于 2014-2-5 18:11:53

囧囧无力 发表于 2014-2-1 09:47
我是来说题外话的。。
“如果你需要引入更多的文件,只要用不同的标识来声明就可以了。
@include=SomeFil ...

2.5新增的功能,而且必须要写在节点下,以前是写在哪里都一样

会哭的梧桐树 发表于 2014-2-5 20:17:38

suixin812 发表于 2014-2-5 18:11
2.5新增的功能,而且必须要写在节点下,以前是写在哪里都一样

我怎么觉得没有差...直接空一行写在一个代码文件的最后,貌似也可以
页: [1] 2
查看完整版本: 【审核】@include Guide @Include指南