kyriakos876 wrote:Also you can only open and rewrite on a file without deleting everything only if it's in .txt format

Yep, I realized this and it's clear. However I think rewriting the code when any changes occurs isn't extremely efficient approach. Especially that in such cases you have to refresh the skin, to use the rewritten file.

balala wrote:Yep, I realized this and it's clear. However I think rewriting the code when any changes occurs isn't extremely efficient approach. Especially that in such cases you have to refresh the skin, to use the rewritten file.

That is true and one of my concerns. I'm studying raiguards code that could solve many of my problems though.

balala wrote:I have no good ideas, because if the file is rewritten a refresh of the skin is absolutely necessary. No other ways.

I think I can compromise one refresh every time a disk is added or removed...It does happen a lot but It's not THAT often and nothing that a computer made for server can't handle. Imagine a refresh every 1 hour for example... It's not that bad... but at the moment I don't know how to do that. Maybe you could help me here...

This will OnChangeAction will be triggered from the first update because the [MeasureRun] will first have " " as return which is nothing, and then in the next update it will have the actual value... what could I do about this? Any ideas?

This will OnChangeAction will be triggered from the first update because the [MeasureRun] will first have " " as return which is nothing, and then in the next update it will have the actual value... what could I do about this? Any ideas?

Maybe try something like the following: add the following String measure:

If you have a FinishAction that triggers, even second-hand, a refresh of the skin, that is going to be fired every time the skin is refreshed. That is a certain endless loop.

Understand that any IfCondition or IfMatch works in the following way:

1. The test is done the first time the measure it is on is updated, and the results of "true" or "false" are acted on.
2. The test is done on every subsequent update of the measure and the "true" or "false" actions are taken if the result of the test has changed. So in other words, when the result changes from "true" to "false" or from "false" to "true".
3. The "true" or "false" actions are not taken if the result of the test has not changed. The action is not taken if the result was "true" and is still "true".
4. IfConditionMode can change that behavior so the actions are taken on every update, even if they remain in the same "true" or "false" state.

Refreshing a skin will always cause item 1. to apply. When a skin is refreshed, it is started over, and there is no way for it to remember any previous state of "true" or "false", thus the appropriate action is applied. Only with some clever use of !WriteKeyValue can make any state be "persistent" and survive a refresh of the skin.

jsmorley wrote:If you have a FinishAction that triggers, even second-hand, a refresh of the skin, that is going to be fired every time the skin is refreshed. That is a certain endless loop.

Understand that any IfCondition or IfMatch works in the following way:

1. The test is done the first time the measure it is on is updated, and the results of "true" or "false" are acted on.
2. The test is done on every subsequent update of the measure and the "true" or "false" actions are taken if the result of the test has changed. So in other words, when the result changes from "true" to "false" or from "false" to "true".
3. The "true" or "false" actions are not taken if the result of the test has not changed. The action is not taken if the result was "true" and is still "true".
4. IfConditionMode can change that behavior so the actions are taken on every update, even if they remain in the same "true" or "false" state.