German ProgressBar ansteuern

Discussion in 'German Forum' started by peternmb, Feb 23, 2015.

  1. peternmb

    peternmb Active Member Licensed User

    Hallo,
    ich lade eine größere Anzahl kleiner Dateien per SMB von meinem Windows-Rechner.
    Ich möchte den Fortschritt in einer ProgressBar anzeigen lassen (Die Dateien liegen mir als Liste vor).
    Das Erstellen der ProgressBar bekomme ich noch hin, nur wie wird der Fortschritt angezeigt?
    Code:
    Sub download_files
       
    '
       Dim pnlP As Panel
       pnlP.Initialize(
    "pnlP")
       
    Dim bgnd As ColorDrawable
       bgnd.Initialize(
    Colors.Black, 5dip)
       pnlP.Background = bgnd
       
    Activity.addView(pnlP,15%x,40%y,70%x,16%y)
       
    '
       Dim lblP As Label
       lblP.Initialize(
    "lblP")
       lblP.Text = 
    "bitte warten, die Dateien werden heruntergeladen..."
       
    '
       lblLFD.Initialize("lblLFD")
       lblLFD.Text = 
    "kopiere: " & FileList.Get(lfd)  
       
    '
       pnlP.AddView(lblP,3%x,1%y,64%x,4%y
       pnlP.AddView(lblLFD,
    3%x,11%y,64%x,4%y
       
    '
       prb.Initialize("prb")
       pnlP.addView(prb,
    3%x,5%y,64%x,5%y)
       
    '
       lfd=0
       SMB2.Initialize(
    "SMB2")
       SMB2.DownloadFile(
    "SMB://"&WINip&"/"&WINpfad&"/"&BILDpfad&"/",FileList.Get(lfd),AppDir&"/Daten",FileList.Get(lfd))
       
    '
    End Sub


    Sub SMB2_DownloadCompleted (uurl As String, RemoteFile As String, Success As Boolean)
       
    If Success = True Then
          
    Log(FileList.Get(lfd) & "OK")
       
    Else 
          
    Log(FileList.Get(lfd) & "nicht OK")
       
    End If
       
    '
       lfd=lfd+1
       
    If lfd < FileList.Size Then
         
    Try
           lblLFD.Text = 
    "kopiere: " & FileList.Get(lfd) 
           SMB2.DownloadFile(
    "SMB://"&WINip&"/"&WINpfad&"/"&BILDpfad&"/",FileList.Get(lfd),AppDir&"/Daten",FileList.Get(lfd))
         
    Catch

         
    End Try
       
    End If
    End Sub
     
  2. DonManfred

    DonManfred Expert Licensed User

    In download komplett event kannst du den Fortschritt verändern
     
  3. KMatle

    KMatle Expert Licensed User

    Ich nehme dazu gerne ein Label (Höhe 1-3 dip je nach Gefallen) und verändere die Breite. So entsteht ein einfacher Ladebalken.

    Beispiel: Label.left=5%x = 0%, maximale Breite=95%x = 100% -> 90%x entspricht dann 100%

    Mit nem kleinen Dreisatz dann umrechnen. 300 Dateien, wir haben 150 geladen (=50% von 90%x = 45%x -> Label1.width=45%x
     
  4. peternmb

    peternmb Active Member Licensed User

    ja daran hatte ich auch schon gedacht, aber da es eine Progressbar als View gibt wollte ich das auch verwenden.
    Ich schaffe es aber nicht, dort eine Wert einzutragen...
     
  5. klaus

    klaus Expert Licensed User

    Versuche diese Zeile in der SMB2_DownloadCompleted Routine.
    ProgressBar.Progress = 100 * lfd / FileList.Size
    Vielleicht brauchst Du auch ein DoEvents danach.
     
  6. peternmb

    peternmb Active Member Licensed User

    Vielen Dank - genau das war das Problem - jetzt klappt es :)
     
Loading...
  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice