Heey.
Ik wil een file beheer programma maken.
En het kan veel simpeler maar ik wil experimenteren met klassen schrijven.
Ik wil dat je een oneindig veel files kan downloaden.
Hier voor heb je dus dynamische labels/progressbars voor nodig.
Geen probleem als je maar een goede class hebt geschreven die deze gegevens automatisch kan verwerken.
maar deze class werkt heel traag volgens mij.. ligt dat aan mijn class of aan de pc of aan de download link.
Class:
Visual Basic code: Public Class Program Private DProgress As Integer Private PName As String Private DLoc As String Private DFrom As String Private Label1 As Label Private Progressbar1 As ProgressBar Private WithEvents Downloader As WebClient
Public Property Name() As String Get Return PName End Get Set(ByVal value As String) PName = value End Set End Property Public Property Location() As String Get Return DLoc End Get Set(ByVal value As String) DLoc = value End Set End Property Public Property Downloadfrom() As String Get Return DFrom End Get Set(ByVal value As String) DFrom = value End Set End Property
Public Property TheLabel() As Label Get Return Label1 End Get Set(ByVal value As Label) Label1 = value End Set End Property
Public Property Progressbar() As ProgressBar Get Return Progressbar1 End Get Set(ByVal value As ProgressBar) Progressbar1 = value End Set End Property
Public Sub Download() If PName = "" Then MsgBox("Geen programma naam opgegeven") Exit Sub End If If DLoc = "" Then MsgBox("Waar moet ik naar toe downloaden?") Exit Sub End If If DFrom = "" Then MsgBox("URI Niet gevonden") Exit Sub End If
Downloader = New WebClient Downloader.DownloadFileAsync(New Uri(DFrom), DLoc)
End Sub
Private Sub Downloader_DownloadFileCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.AsyncCompletedEventArgs) Handles Downloader.DownloadFileCompleted MsgBox("Download complete") End Sub
Private Sub Downloader_DownloadProgressChanged(ByVal sender As Object, ByVal e As System.Net.DownloadProgressChangedEventArgs) Handles Downloader.DownloadProgressChanged Label1.Text = e.ProgressPercentage Progressbar1.Value = e.ProgressPercentage End Sub
End Class
en om het aan te roepen
Visual Basic code: Dim myProgram As New Program myProgram.Name = "File1" myProgram.Location = TextBox2.Text myProgram.Downloadfrom = TextBox1.Text myProgram.TheLabel = Label2 myProgram.Progressbar = ProgressBar1 ProgressBar1.Value = 0 Label1.Text = myProgram.Name myProgram.Download()
ps deze klasse heb ik geschreven onder wiskunde en later overgetypt. |