HELP!!! Image Imbedding and retrieval

Discussion in 'Questions (Windows Mobile)' started by XerVision, Jun 5, 2007.

  1. XerVision

    XerVision Member Licensed User

    I embedded my images (as .jpg then as .bmp) in one file and used retrieveimg to open the file. It opened the file into an imagelist- however only my first form come up with the right image.. All my other forms have big red x's on them.:(
     
  2. Erel

    Erel Administrator Staff Member Licensed User

    Can you post some of your code?
     
  3. XerVision

    XerVision Member Licensed User

    Sure- I am now finding a quirk with the system. It seems I must load up the imagelist according to where it is in the memory per Sub-- is that right?

    The following is how I am attempting to retrieve the data.
    I have four forms that I am putting the images on.. Form1 ...Form4
    I notice that if an image does not display - it corrupts that image and it cannot then be displayed again in the entire program:sign0085:

    Sub App_Start
    RetrieveIMG

    'SPLASH SCREEN INFO
    SPLASHSCREEN.Show
    Timer1.Interval = 1000
    Timer1.Enabled= True

    SuperLocker
    WOSetupData
    End Sub

    ...


    Sub RetrieveImg
    'Create Directory'
    'If there is an issue then the file is corrup and it need to rasie that error
    FileOpen(d1,"eXeImg.dat",cRandom)
    Ximg.New1(d1,true)
    'GET FILES FROM LIST
    for i = 0 to 4 Step +1
    XiL1.Add(Ximg.RetrieveImage)
    next

    'PLACE IMAGES IN RESPECTIVE PLACES
    'SCREENS
    'SPLASHSCREEN
    '

    'VIEW
    'WOVIEW
    '
    ' WOBackBtn.Image =XiL1.Item(2)
    ' WONextBtn.Image= XiL1.Item(2)
    ' WOLockBtn.Image =XiL1.Item(0)

    'LOCK
    'Image3.Image= XiL1.Item(0)
    'CARDIOLockBtn.Image= XiL1.Item(1)

    'MeasLock.Image= XiL1.Item(1)
    'CARDIOLOCKBTN.Image= XiL1.Item(2)



    'BACK

    CARDIOBackBtn.Image= XiL1.Item(2)
    MeasBack.Image = XiL1.Item(2)
    'WOBackBtn.Image =XiL1.Item(2)

    'NEXT BTN
    Nextb=3
    CARDIONextBtn.Image= XiL1.Item(Nextb)
    MeasNext.Image = XiL1.Item(Nextb)

    'LOGO
    Logo=4
    AbouteLogo.Image = XiL1.Item(Logo)
    CARDIOLogo.Image =XiL1.Item(Logo)
    MeasLogo.Image = XiL1.Item(Logo)
    Splashlogo.Image = XiL1.Item(Logo)

    End Sub ' RETRIEVEIMG
     
  4. mwaite

    mwaite Member Licensed User

    I just had this happen to me yesterday too! I figured out that I needed to turn transparency off and then the image would show up.
     
  5. XerVision

    XerVision Member Licensed User

    It seems that you cannot assign an imagelist item to a imagebutton without encountering a problem. I turned all my image buttons into clickable Imagelists.
    Unfortunately- that means that I lose the text on my image buttons. But it seems to be working thus far... But hopefully this sparks a "yes-- that is true" and if so, hopefully an enhancement
     
  6. Erel

    Erel Administrator Staff Member Licensed User

    Attached Files:

  7. mwaite

    mwaite Member Licensed User

    Erel,

    Can you explain why I get a crossed out box instead of an image when I have the imagebuttons transparent in the following code:

    FileOpen(c1,"img.dat",cRandom)
    bin.New1(c1,true)
    welcome.Image = bin.RetrieveImage ' << image
    connectyes.Image = bin.RetrieveImage ' << imagebutton
    connectno.Image = bin.RetrieveImage ' << imagebutton
    FileClose(c1)

    If I set the imagebuttons to non-transparent then they show up just fine.

    I looked at your smiley example and thought perhaps you were indicating to use an imagelist instead of loading the images from the file directly to the imagebuttons, but I get the same results.
     
  8. Erel

    Erel Administrator Staff Member Licensed User

  9. Erel

    Erel Administrator Staff Member Licensed User

    I see this strange behavior.
    After some research I've found an article about it on the MSDN forums.
    It will only happen on the desktop.
    The solution is to use a copy of the image.
    You could use an Image control to do it.
    Add an Image control and set its Visible property to false.
    Now load the image to the image control and then copy it to the transparent imagebutton:

    Code:
    Sub loadimages
        FileOpen(c1,
    "img.dat",cRandom)
        bin.New1(c1,
    true)
        welcome.Image = bin.RetrieveImage
        image2.Image = bin.RetrieveImage
        connectyes.Image = image2.Image 
    'Creates a new copy. 
        image2.Image = bin.RetrieveImage     
        connectno.Image = image2.Image 
    'Creates a new copy.
        FileClose(c1)
    End Sub
     
  10. mwaite

    mwaite Member Licensed User

    OK that makes sense, and a workable solution! Thanks for looking into this!
     
Loading...