It is currently March 28th, 2024, 8:55 pm

repeating a text to cover whole page

Get help with creating, editing & fixing problems with skins
eronic
Posts: 4
Joined: April 17th, 2018, 7:44 am

repeating a text to cover whole page

Post by eronic »

Hi Experts.

I want to repeat a text with current date and time to cover whole screen.

Wondering if there is any loop function to do that.

THIS IS SAMPLE TEXT TO SHOW
Tuesday, 2018-04-18 10:10 AM

Cheers
User avatar
eclectic-tech
Rainmeter Sage
Posts: 5382
Joined: April 12th, 2012, 9:40 pm
Location: Cedar Point, Ohio, USA

Re: repeating a text to cover whole page

Post by eclectic-tech »

eronic wrote:Hi Experts.

I want to repeat a text with current date and time to cover whole screen.

Wondering if there is any loop function to do that.

THIS IS SAMPLE TEXT TO SHOW
Tuesday, 2018-04-18 10:10 AM

Cheers
No, there is no loop function in Rainmeter to create multiple meters.
eronic
Posts: 4
Joined: April 17th, 2018, 7:44 am

Re: repeating a text to cover whole page

Post by eronic »

Hey Mate thanks for your reply

Any way to accomplish that?
User avatar
eclectic-tech
Rainmeter Sage
Posts: 5382
Joined: April 12th, 2012, 9:40 pm
Location: Cedar Point, Ohio, USA

Re: repeating a text to cover whole page

Post by eclectic-tech »

eronic wrote:Hey Mate thanks for your reply

Any way to accomplish that?
In order to display the same item multiple times, you would need to duplicate the original meters, give them a unique name, and position them relatively across and down the screen. For different resolutions, you would need to modify the font size and/or X and Y positions.

This works for a 1366x768 resolution.

Code: Select all

[Rainmeter]
Update=1000
AccurateText=1
DynamicWindowSize=1
OnRefreshAction=[!Move "0" "0"]

; ========= Variables ==========
[Variables]


; ========= Measures ==========
[MeasureTime]
Measure=Time
Format=%A, %Y-%m-%d %#I:%M %p
; Tuesday, 2018-04-18 10:10 AM



; ========= Meter Styles ==========
[TimeStyle]
FontColor=192,192,192
FontSize=36
X=15R
Y=r


; ========= Meters ==========

[MeterString1]
Meter=String
MeterStyle=TimeStyle
MeasureName=MeasureTime
X=0
Y=0

[MeterString2]
Meter=String
MeterStyle=TimeStyle
MeasureName=MeasureTime

[MeterString3]
Meter=String
MeterStyle=TimeStyle
MeasureName=MeasureTime
X=0
Y=R

[MeterString4]
Meter=String
MeterStyle=TimeStyle
MeasureName=MeasureTime

[MeterString5]
Meter=String
MeterStyle=TimeStyle
MeasureName=MeasureTime
X=0
Y=R

[MeterString6]
Meter=String
MeterStyle=TimeStyle
MeasureName=MeasureTime

[MeterString7]
Meter=String
MeterStyle=TimeStyle
MeasureName=MeasureTime
X=0
Y=R

[MeterString8]
Meter=String
MeterStyle=TimeStyle
MeasureName=MeasureTime

[MeterString9]
Meter=String
MeterStyle=TimeStyle
MeasureName=MeasureTime
X=0
Y=R

[MeterString10]
Meter=String
MeterStyle=TimeStyle
MeasureName=MeasureTime

[MeterString11]
Meter=String
MeterStyle=TimeStyle
MeasureName=MeasureTime
X=0
Y=R

[MeterString12]
Meter=String
MeterStyle=TimeStyle
MeasureName=MeasureTime

[MeterString13]
Meter=String
MeterStyle=TimeStyle
MeasureName=MeasureTime
X=0
Y=R

[MeterString14]
Meter=String
MeterStyle=TimeStyle
MeasureName=MeasureTime

[MeterString15]
Meter=String
MeterStyle=TimeStyle
MeasureName=MeasureTime
X=0
Y=R

[MeterString16]
Meter=String
MeterStyle=TimeStyle
MeasureName=MeasureTime

[MeterString17]
Meter=String
MeterStyle=TimeStyle
MeasureName=MeasureTime
X=0
Y=R

[MeterString18]
Meter=String
MeterStyle=TimeStyle
MeasureName=MeasureTime

[MeterString19]
Meter=String
MeterStyle=TimeStyle
MeasureName=MeasureTime
X=0
Y=R

[MeterString20]
Meter=String
MeterStyle=TimeStyle
MeasureName=MeasureTime

[MeterString21]
Meter=String
MeterStyle=TimeStyle
MeasureName=MeasureTime
X=0
Y=R

[MeterString22]
Meter=String
MeterStyle=TimeStyle
MeasureName=MeasureTime

[MeterString23]
Meter=String
MeterStyle=TimeStyle
MeasureName=MeasureTime
X=0
Y=R

[MeterString24]
Meter=String
MeterStyle=TimeStyle
MeasureName=MeasureTime

[MeterString25]
Meter=String
MeterStyle=TimeStyle
MeasureName=MeasureTime
X=0
Y=R

[MeterString26]
Meter=String
MeterStyle=TimeStyle
MeasureName=MeasureTime

[MeterString27]
Meter=String
MeterStyle=TimeStyle
MeasureName=MeasureTime
X=0
Y=R

[MeterString28]
Meter=String
MeterStyle=TimeStyle
MeasureName=MeasureTime

[MeterString29]
Meter=String
MeterStyle=TimeStyle
MeasureName=MeasureTime
X=0
Y=R

[MeterString30]
Meter=String
MeterStyle=TimeStyle
MeasureName=MeasureTime

Not something I would ever like on my desktop, but there you go! :17denial
User avatar
Active Colors
Moderator
Posts: 1251
Joined: February 16th, 2012, 3:32 am
Location: Berlin, Germany

Re: repeating a text to cover whole page

Post by Active Colors »

I think there is an utter misunderstanding of this
eronic wrote: repeat a text with current date and time to cover whole screen.
I am not quite sure what the OP wants to achieve.
eronic
Posts: 4
Joined: April 17th, 2018, 7:44 am

Re: repeating a text to cover whole page

Post by eronic »

eclectic-tech wrote:In order to display the same item multiple times, you would need to duplicate the original meters, give them a unique name, and position them relatively across and down the screen. For different resolutions, you would need to modify the font size and/or X and Y positions.

This works for a 1366x768 resolution.

Code: Select all

[Rainmeter]
Update=1000
AccurateText=1
DynamicWindowSize=1
OnRefreshAction=[!Move "0" "0"]

; ========= Variables ==========
[Variables]


; ========= Measures ==========
[MeasureTime]
Measure=Time
Format=%A, %Y-%m-%d %#I:%M %p
; Tuesday, 2018-04-18 10:10 AM



; ========= Meter Styles ==========
[TimeStyle]
FontColor=192,192,192
FontSize=36
X=15R
Y=r


; ========= Meters ==========

[MeterString1]
Meter=String
MeterStyle=TimeStyle
MeasureName=MeasureTime
X=0
Y=0

[MeterString2]
Meter=String
MeterStyle=TimeStyle
MeasureName=MeasureTime

[MeterString3]
Meter=String
MeterStyle=TimeStyle
MeasureName=MeasureTime
X=0
Y=R

[MeterString4]
Meter=String
MeterStyle=TimeStyle
MeasureName=MeasureTime

[MeterString5]
Meter=String
MeterStyle=TimeStyle
MeasureName=MeasureTime
X=0
Y=R

[MeterString6]
Meter=String
MeterStyle=TimeStyle
MeasureName=MeasureTime

[MeterString7]
Meter=String
MeterStyle=TimeStyle
MeasureName=MeasureTime
X=0
Y=R

[MeterString8]
Meter=String
MeterStyle=TimeStyle
MeasureName=MeasureTime

[MeterString9]
Meter=String
MeterStyle=TimeStyle
MeasureName=MeasureTime
X=0
Y=R

[MeterString10]
Meter=String
MeterStyle=TimeStyle
MeasureName=MeasureTime

[MeterString11]
Meter=String
MeterStyle=TimeStyle
MeasureName=MeasureTime
X=0
Y=R

[MeterString12]
Meter=String
MeterStyle=TimeStyle
MeasureName=MeasureTime

[MeterString13]
Meter=String
MeterStyle=TimeStyle
MeasureName=MeasureTime
X=0
Y=R

[MeterString14]
Meter=String
MeterStyle=TimeStyle
MeasureName=MeasureTime

[MeterString15]
Meter=String
MeterStyle=TimeStyle
MeasureName=MeasureTime
X=0
Y=R

[MeterString16]
Meter=String
MeterStyle=TimeStyle
MeasureName=MeasureTime

[MeterString17]
Meter=String
MeterStyle=TimeStyle
MeasureName=MeasureTime
X=0
Y=R

[MeterString18]
Meter=String
MeterStyle=TimeStyle
MeasureName=MeasureTime

[MeterString19]
Meter=String
MeterStyle=TimeStyle
MeasureName=MeasureTime
X=0
Y=R

[MeterString20]
Meter=String
MeterStyle=TimeStyle
MeasureName=MeasureTime

[MeterString21]
Meter=String
MeterStyle=TimeStyle
MeasureName=MeasureTime
X=0
Y=R

[MeterString22]
Meter=String
MeterStyle=TimeStyle
MeasureName=MeasureTime

[MeterString23]
Meter=String
MeterStyle=TimeStyle
MeasureName=MeasureTime
X=0
Y=R

[MeterString24]
Meter=String
MeterStyle=TimeStyle
MeasureName=MeasureTime

[MeterString25]
Meter=String
MeterStyle=TimeStyle
MeasureName=MeasureTime
X=0
Y=R

[MeterString26]
Meter=String
MeterStyle=TimeStyle
MeasureName=MeasureTime

[MeterString27]
Meter=String
MeterStyle=TimeStyle
MeasureName=MeasureTime
X=0
Y=R

[MeterString28]
Meter=String
MeterStyle=TimeStyle
MeasureName=MeasureTime

[MeterString29]
Meter=String
MeterStyle=TimeStyle
MeasureName=MeasureTime
X=0
Y=R

[MeterString30]
Meter=String
MeterStyle=TimeStyle
MeasureName=MeasureTime

Not something I would ever like on my desktop, but there you go! :17denial

Thanks mate, I have almost done the same thing.
eronic
Posts: 4
Joined: April 17th, 2018, 7:44 am

Re: repeating a text to cover whole page

Post by eronic »

Active Colors wrote:I think there is an utter misunderstanding of this

I am not quite sure what the OP wants to achieve.
the idea is to have a watermark on screen.
so text is needed to be repeated to fill the whole screen.
User avatar
balala
Rainmeter Sage
Posts: 16110
Joined: October 11th, 2010, 6:27 pm
Location: Gheorgheni, Romania

Re: repeating a text to cover whole page

Post by balala »

eronic wrote:I want to repeat a text with current date and time to cover whole screen.
I think a lua script could be used to achieve something like you'd like. As eclectich-tech said, natively Rainmeter can't do this (it definitely is not a programming language, so it doesn't support looping), but because Lua is a programing language, it can be used to create a loop.
Try the following codes:
First create a skin, with the following code:

Code: Select all

[Rainmeter]
Update=16
OnRefreshAction=[!Move "0" "0"]
DynamicWindowSize=1

[Variables]

[MeasureLua]
Measure=Script
ScriptFile=#@#MyLua.lua

[MeasureTime]
Measure=Time
Format=%A, %Y-%m-%d %#I:%M %p

[MeasureHeight]
Measure=Calc
Formula=[MeterString:H]
IfCondition=(#CURRENTSECTION#>=#WORKAREAHEIGHT#)
IfTrueAction=[!DisableMeasure "MeasureLua"][!DisableMeasure "MeasureTime"][!SetOption MeterString UpdateDivider "-1"][!UpdateMeter "MeterString"]
DynamicVariables=1

[MeterString]
MeasureName=MeasureTime
Meter=STRING
X=5
Y=5
W=(#WORKAREAWIDTH#-10)
ClipString=1
FontColor=220,220,220
FontSize=18
FontFace=Segoe UI
StringStyle=BOLD
StringAlign=LEFT
AntiAlias=1
Text=%1
See that the above code uses a MyLua.lua script file, which also have to be created (into the @Resources folder). Use the following (extremely simple) code for it:

Code: Select all

function Initialize()
	Str = ''
end

function Update()
	Str = Str..' %1'
	SKIN:Bang('!SetOption', 'MeterString', 'Text', Str)
end
The basic idea is to extent the Text option of the [MeterString] meter on each update cycle, adding once again the same string (%1, which is in fact the date and time, returned by the [MeasureTime] measure).
The height of the [MeterString] meter is continually compared with the height of the work area (#WORKAREAHEIGHT# variable). Once the height of the meter reaches the height of the screen, the measures are disabled and the meter is paused (setting its UpdateDivider to -1).
The disadvantage of this code is the used low Update value. For a first try this is ok, but if you find this code useful enough, we can rewrite it a bit, to use the default update value and an ActionTimer plugin measure, to set the string appropriately. Probably this would be a much better approach, having more advantages.
So, does the above code working well?