# Tips - The power of @include - Rainmeter官方文档 - 雨滴社区 - Powered by Discuz!
 找回密码
 点击注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2547|回复: 0

Tips - The power of @include

[复制链接]

签到天数: 265 天

[LV.8]以坛为家I

发表于 2012-5-27 14:51:42 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?点击注册

x


【版权声明】
   本文档翻译者:雨滴社区-相望无言
   本文档仅用于雨滴社区站内交流,禁止转载,由此引发的一切责任及版权纠纷由转载、传播本文档者负责。

The power of @include

Tip by Brian and Smurfier

 

虽然@include是个简单的工具,但是它是很强大的。他可以通过剥离较长的代码到较短的文件来减少皮肤代码长度。

重复代码被使用在多用皮肤中,可以在一个文件中管理。也可以被用来在打开的皮肤中加载不同的代码。

注意:我们将在这个主题中使用“父文件“子文件”,当我们说“父文件”意味着是这个皮肤,当我们说“子文件”意味着是这个@inlude文件。

使用 @include

这里有几个使用@inlude的规则,第一条是@include 的使用


@include=SomeFile.inc


第二个是你引用的文件


[Variables]

SomeVariable=AValue


正在使用@inlude 的文件必须是ini格式。意味着它有适当的[sections]节点,有key=value对,这个引用使用[variables]节点的设置。

如果你想要引用更多的文件,他们需要增加序号。 


@include=SomeFile.inc

@include2=SomeOtherFile.inc

@include3=YetAnotherFile.inc

...


虽然它不需要一定是inc格式,但是强烈建议使用它。这可防止rainmeter出现像皮肤的列表文件

我们也可以用一个变量定义一个@include,唯一需要注意的是变量不能为动态。


[Variables]

Theme=SomeTheme

@include=#Theme#/SomeFile.inc

理解@include

它做了什么,当RAINEMTER到达一个@inlude行,他读取了子文件,然后把它内容显示在皮肤下面

 

 

 

SomeFile.inc

[Background]

Meter=Image

H=30

W=40


YourSkin.inc

@include=SomeFile.inc

 

[Foreground]

Meter=Image

H=20

W=30

X=5r

Y=5r


这是行不通的,像预期那样,这[backgroud]meter会被后面的[foreground]meter 代替,我们可以使用一个@include规则修复它.


来自于手册
被引用的文件在@include被定义的位置是被读取的,这样这个来自于被引用文件的值与那些来自于ini文件有相同的名字,就会覆盖前几节的值,反之亦然。

如果在皮肤中我们想要放置的meter或者measure的位置,只写了节点的名字会怎样(在这个例子中是[background])。像下面这样

@include=SomeFile.inc

 

[Background]

 

[Foreground]

Meter=Image

H=20

W=30

X=5r

Y=5r

在子文件中 [Background]节点 会显示在皮肤相同的节点下,这样就解决了问题。

 

 

 

实际使用: Skin Settings(皮肤设置)

@include最常见的用途是允许用户改变皮肤在一个单独的文件中所使用的设置

Settings.inc

[Variables]

BackgroundImage=SomeImage.inc

HideBackground=0


Skin.ini

@include=Settings.inc

 

[Background]

Meter=Image

ImageName=#BackgroundImage#

Hidden=#HideBackground#

实际使用: Pages and Stylesheets(页和样式表)

@include2个主要用途是轻松切换皮肤的不同页面还有为你的皮肤创建样式。这2种用途 实际上我们可以使用变量定义一个@include

创建不同的页面是容易的,只要把每个页面按照序列命名,然后在主皮肤中我们需要把要改变的皮肤定义成变量

[Variables]

Page=1

@include=Pages\PageNum#Page#.inc


在这个主皮肤文件中,可以用 !WriteKeyValue 命令改变页面。只需要记住在改变 page 变量之后刷新皮肤,让我们看到新的页面被加载。


!Execute [!WriteKeyValue Variables Page 2][!Refresh]

这个方可同样用于 改变样式 ,一个样式表包含了Meter Styles用来定义你皮肤的外观和感觉

 



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 点击注册

本版积分规则

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