Displaying skin strings via a property.

Another question in my continuing struggles to understand $PARAM’s, properties and other advanced skinning techniques.

In order to have general code to change details of the home screen and the various items on it I have made use of $PARAM to pass names of skin strings to a dialog to allow the user to change the details of the selected item. For example I have a skin string called CustomMovies.4.Label and when the item is clicked in the customization screen, this name is written to a window property called Window(settings).Property(CurrentLabel). Now I can use this property to set a new value of the skin string, but I can’t manage to then display the contents of this skin string in a <label> tag. The code as it currently stands is thus:

PHP Code:
    <include name="use-skinstring">
        <
param name="lab2"/>
        <
definition>
            <
label2>$INFO[$PARAM[lab2]]</label2>
        </
definition>
    </include> 

for the paramatized include.

PHP Code:
        <control type="label" id="8010"><!-- Hack to show current label string -->
            <
left>-200</left>
            <
top>-40</top>
            <
width>554</width>
            <
height>30</height>
            <
label>$INFO[Window(settings).Property(CurrentLabel),$INFO[Skin.String(,)]]</label>
            <
font>font11</font>
            <
visible>false</visible>
        </
control

PHP Code:
                <control type="button" id="5011"><!-- Change Label of custom menu item -->
                    <
width>554</width>
                    <
height>48</height>
                    <
label>- $LOCALIZE[21899]</label>
                    <include 
name="use-skinstring">
                        <
param name="lab2" value="Control.GetLabel(8010)"/>
                    </include>
                    <
font>font11</font>
                    <
onclick>Skin.SetString($INFO[Window(settings).Property(ListCustomBase),,.Label])</onclick>
                    <
onclick>SetFocus(9000)</onclick>
                    <
enable>!IsEmpty(Window(settings).Property(ListCustomBase))</enable>
                </
control

Button 5011 reads the label of Label 8010 and passed the value to the include. Currently it displays the string “$INFO[Skin.String(CustomMovies.4.Label)]” which is what I would have in the label to show what the label is normally. If I drop the $INFO from include I get Skin.String(CustomMovies.4.Label), so think I’m on the right track, just I’m missing something important.

Can anyone suggest something I can try? As a note the <onclick> above is working just fine (in button 5011), so the button does what it should, just I can’t feedback to the user the current state of the button.

Thanks, Wyrm (AppTV)