What happened to the Messenger Plus! forums on msghelp.net?
Shoutbox » MsgHelp Archive » Messenger Plus! for Live Messenger » Scripting » [?] Trouble using ImageElmt_SetImageFile()

[?] Trouble using ImageElmt_SetImageFile()
Author: Message:
Skarbo
New Member
*


Posts: 7
38 / Male / Flag
Joined: Apr 2008
O.P. [?] Trouble using ImageElmt_SetImageFile()
Hi, i just started scripting scripts for Messenger. Right now im just playing around and figuring out what i can do.

When i try to change the image id=ImgSound2 using ImageElmt_SetImageFile() nothing happens.
Im pretty new at XML, so maybe the problem lies there.

Im running Messenger Plus! Live 4.60.324 on a XP.

Here is an example:

XML
code:
<Interfaces xmlns="urn:msgplus:interface" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:msgplus:interface PlusInterface.xsd">
  <Window Id="WndTest" Version="1">       
    <Attributes>           
      <Caption>Test Window</Caption>
    </Attributes>
    <TitleBar>
        <Title><Text>Hello!</Text></Title>
    </TitleBar>
    <Position ClientWidth="170" ClientHeight="45"/>
    <DialogTmpl/>

    <Elements>
      <Element     xsi:type="ImageElement" Id="ImgSound">
        <Position Top="5" Left="6"/>
        <Image>
          <Name>icon-speaker</Name>
        </Image>
      </Element>
      <Element     xsi:type="ImageElement" Id="ImgSound2">
        <Position Top="5" Left="40"/>
        <Image>
          <Name></Name>
        </Image>
      </Element>
    </Elements>

    <Controls>
        <Control xsi:type="ButtonControl" Id="Test">
            <Position Left="115" Top="25" Width="50"/>               
            <Caption>Test</Caption>
        </Control>
    </Controls>
   
  </Window>
</Interfaces>

JS
code:
function OnEvent_Initialize(MessengerStart)
{
    var Wnd = MsgPlus.CreateWnd("InterfaceTest.xml", "WndTest");
    Wnd.ImageElmt_SetImageFile("ImgSound2","icon-speaker");    // not working
}

function OnEvent_Uninitialize(MessengerExit)
{
}

function OnWndTestEvent_CtrlClicked(Wnd, ControlId)
{
    if(ControlId == "Test")
        Wnd.ImageElmt_SetImageFile("ImgSound2","icon-speaker");    // not working
}
Sorry for the long copy/paste, tried to make it as short and easy as possible.

04-22-2008 03:02 PM
Profile E-Mail PM Find Quote Report
pollolibredegrasa
Full Member
***

Avatar
formerly fatfreechicken

Posts: 483
Reputation: 34
35 / Male / Flag
Joined: May 2005
RE: [?] Trouble using ImageElmt_SetImageFile()
quote:
Originally posted by Skarbo

code:
Wnd.ImageElmt_SetImageFile("ImgSound2","icon-speaker");    // not working


I had this exact problem recently, and found that when using ImageElmt_SetImageFile() with Plus! resource images, you need to prefix the image name with "\\":

code:
Wnd.ImageElmt_SetImageFile("ImgSound2","\\icon-speaker");

Hope this helps :)
;p

[Image: chickennana.gif] Vaccy is my thin twin! [Image: chickennana.gif]
04-22-2008 03:15 PM
Profile PM Find Quote Report
matty
Scripting Guru
*****


Posts: 8336
Reputation: 109
39 / Male / Flag
Joined: Dec 2002
Status: Away
RE: [?] Trouble using ImageElmt_SetImageFile()
This should be classified as a bug in Plus!. The prepending the backslash is to make the script search for an absolute path not relative to the Scripts folder. However I can see that Plus! searchs the Images folder and if no match is found looks in the resources. It should be implemented that scripts use res:icon-speaker to load a resource. This would help with using resources and absolute paths. In my opinion this is a bug. Anyone agree?

This post was edited on 04-22-2008 at 05:30 PM by matty.
04-22-2008 05:28 PM
Profile E-Mail PM Find Quote Report
Skarbo
New Member
*


Posts: 7
38 / Male / Flag
Joined: Apr 2008
O.P. RE: [?] Trouble using ImageElmt_SetImageFile()
Thanks, that did the trick.
04-22-2008 05:51 PM
Profile E-Mail PM Find Quote Report
Matti
Elite Member
*****

Avatar
Script Developer and Helper

Posts: 1646
Reputation: 39
32 / Male / Flag
Joined: Apr 2004
RE: [?] Trouble using ImageElmt_SetImageFile()
quote:
Originally posted by matty
This should be classified as a bug in Plus!. The prepending the backslash is to make the script search for an absolute path not relative to the Scripts folder. However I can see that Plus! searchs the Images folder and if no match is found looks in the resources. It should be implemented that scripts use res:icon-speaker to load a resource. This would help with using resources and absolute paths. In my opinion this is a bug. Anyone agree?
Yes, it's quite odd that a backslash should be used to load Plus!' own resources... :S
I suggest Plus! should act like this:
  • Check if "icon-speaker" is in the script's Images directory. If it is, use that image file.
  • Else, check if "icon-speaker" is in Plus!' own resources. If it is, use that resource. Else, the function fails and the ImageElement's image is cleared.
Of course, the "res:xxx" option is also possible, but I think it's a bit strange because you'd expect the parameter to look like a normal file path... But it is even worse if you have to place a backslash in front of a resource of Plus! itself, I agree with you there. :)
Plus! Script Developer | Plus! Beta Tester | Creator of Countdown Live | Co-developer of Screenshot Sender 5

Found my post useful? Rate me!
04-22-2008 06:44 PM
Profile E-Mail PM Web Find Quote Report
« Next Oldest Return to Top Next Newest »


Threaded Mode | Linear Mode
View a Printable Version
Send this Thread to a Friend
Subscribe | Add to Favorites
Rate This Thread:

Forum Jump:

Forum Rules:
You cannot post new threads
You cannot post replies
You cannot post attachments
You can edit your posts
HTML is Off
myCode is On
Smilies are On
[img] Code is On