German ProgressBar ansteuern

peternmb

Well-Known Member
Licensed User
Longtime 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?
B4X:
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
 

DonManfred

Expert
Licensed User
Longtime User
In download komplett event kannst du den Fortschritt verändern
 

KMatle

Expert
Licensed User
Longtime 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
 

peternmb

Well-Known Member
Licensed User
Longtime 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.
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...
 
Top