iOS Question doEvents / async methods

Discussion in 'iOS Questions' started by Albi, Jun 9, 2015.

  1. Albi

    Albi Active Member Licensed User

    Hello,
    I know I've asked this before but I obviously don't understand it fully as I can't seem to get messages to run at the right time.

    I want the first message to show, then the code to run, then the 2nd message to show.
    Code:
    Sub btnShare_Click
        HD.ToastMessageShow(
    "Exporting..."False)
        UploadFiles
    End Sub

    Sub UploadFiles
    For n = 0To clvPics.GetSize - 1
    Dim pnl AsPanel
     pnl = clvPics.GetPanel(n)
     img1.Initialize(
    "")
     img1 = pnl.GetView(
    0)
     phoneSave.AddImageToAlbum(img1.Bitmap)
    Next
    HD.ToastMessageShow(
    "Images exported"False)
    End Sub
    At the moment it runs very fast, but if i have lots of images, or want to export to somewhere other than the camera roll it will be slower. Currently, the first message and the second message show at the same time.
    I tried
    Code:
    callsubdelayed(Me, UploadFiles)
    in btnShare_Click but that made no difference. I also tried putting the messages into their own sub and calling them delayed but that also didn't help.
    Sorry for a repeat question, and thanks for any help
     
  2. Filippo

    Filippo Expert Licensed User

    In such cases I use a timer.
     
  3. Albi

    Albi Active Member Licensed User

    thanks, i shall try that.
     
  4. narek adonts

    narek adonts Well-Known Member Licensed User

    I Think this is the best solution

    Code:
    Sub btnShare_Click
        HD.ToastMessageShow(
    "Exporting..."False)
        UploadFiles
    End Sub

    Sub UploadFiles
    For n = 0To clvPics.GetSize - 1
    CallSubDelayed2(Me,
    "UploadFiles2",n)
    Next
    HD.ToastMessageShow(
    "Images exported"False)
    End Sub

    Sub UploadFiles2(n as int)
    Dim pnl AsPanel
    pnl = clvPics.GetPanel(n)
    img1.Initialize(
    "")
    img1 = pnl.GetView(
    0)
    phoneSave.AddImageToAlbum(img1.Bitmap)
    End sub
     
    Albi likes this.
  5. Albi

    Albi Active Member Licensed User

    thanks, that kind of worked. The 'images exported' message shows over the other one, and they both appear during the duration of the export, so i've just used the 'exporting...' message which now disappears as soon as the export stops which is perfect, except I don't understand why it works.
     
    Last edited: Jun 9, 2015
  6. narek adonts

    narek adonts Well-Known Member Licensed User

    I think it's just a coansidance.

    try this to get start and end.

    Code:
    Sub btnShare_Click
        HD.ToastMessageShow(
    "Exporting..."False)
        UploadFiles
    End Sub

    Sub UploadFiles
    For n = 0To clvPics.GetSize - 1
    CallSubDelayed2(Me,
    "UploadFiles2",n)
    Next

    End Sub

    Sub UploadFiles2(n as int)
    Dim pnl AsPanel
    pnl = clvPics.GetPanel(n)
    img1.Initialize(
    "")
    img1 = pnl.GetView(
    0)
    phoneSave.AddImageToAlbum(img1.Bitmap)
    If n=clvPics.GetSize-1 then
    HD.ToastMessageShow(
    "Images exported"False)
    end if
    End sub
     
  7. Albi

    Albi Active Member Licensed User

    it is indeed a strange coincidence! any idea how or why that's happening, because i like it!

    that code above will surely have the exported message after every file is uploaded? i was trying to have it appear just once at the end.
     
Loading...