Toon posts:

[VB6]Inet control

Pagina: 1
Acties:

Verwijderd

Topicstarter
Heey,

Ik ben bezig een projectje een daarvoor moet een programma documenten van het internet kunnen downloaden. Hij krijgt via een csv bestand allemaal urls binnen. Deze lijst werkt hij af en hiervoor maakt hij allemaal checkboxen aan of je ze wil downloaden of niet:


code:
1
2
Dim chk(1000) As CheckBox
Set chk(teller) = Me.Controls.Add("vb.checkbox", "chk" & teller, Me)


Nu zit bij deze lijst ook een download url. Ik heb het volgende geprobeerd:

- Eerst 1 inet control aan laten maken en een wacht tijd ingebouwd. Omdat sommige bestanden groter zijn dan andere werkte dit niet.
- Een check ingebouwd

code:
1
2
3
4
5
6
7
8
controlle:
Sleep (5)
            If inet(teller).StillExecuting Then
                GoTo controlle
            Else
                inet(teller).Execute chk(i).DataField, "GET"
            End If
        End If


ook dit werkte niet.
- Nu had ik geprobeert om voor elk opbject naast een checkbox ook een Inet control aan te maken.

code:
1
Set inet(teller) = Me.Controls.Add("vb.Inet", "inet" & teller, Me)


maar dit schijnt niet te mogen omdat vb.Inet niet bestaat. Ik heb er op gegoogled maar ik kon inks vinden. en vb.inet leek me een logische naam. Weet iemand hoe dit wel moet, hoe ik het probleem verder kans op lossen?

mvg shad0w

  • Kuhlie
  • Registratie: December 2002
  • Niet online
Ooit gehoord van control arrays? Zet, in de IDE, de index property van zowel je checkbox als je inet op 0. Je kunt dan met:
Visual Basic .NET:
1
Load inet(inet.ubound+1)

1 inet-control toevoegen.

(Overigens is de inet-control zo onbetrouwbaar als poep, ik werk er ook altijd omheen door steeds een nieuwe te nemen wanneer nodig, en deze na gebruik weer op te ruimen.)

  • roy-t
  • Registratie: Oktober 2004
  • Laatst online: 17-10 16:43
Wat ik zelf heb gedaan bij het gebruik van icFTP(Inet dus) is

Vullen van icftp met gegevens om te downloaden, zet de boolean ftpready op false!
Visual Basic:
1
2
3
4
5
6
7
8
bFTPReady = False

sSource = "Database\Overig\Personeel.SDS"
sDest = App.Path & "\Overig\Personeel.SDS"
sBackup = App.Path & "\Overig\Backup\Personeel.SDS"
Call FTP_FastDown(sSource, sDest, sBackup) 'zelf geschreven module waarin icftp gebruikt wordt

tmr_w4FTP.Enabled = True


De code in het inet control zelf in StateChanged, als de state =12 (=klaar) dan wordt bFTPready true

Visual Basic:
1
2
3
Private Sub icFTP_StateChanged(ByVal State As Integer)
If State = 12 Then bFTPReady = True
End Sub


Als bFTPready true is gaat de timer de volgende code uitvoeren:

Waar het denk ik fout gaat bij jou is dat stillexecuting niet altijd goed werkt, maar de State wel.

Denk trouwens ook aan een foutcode, in de timer kun je weer verder gaan als de inet klaar is:

Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
Private Sub tmr_w4FTP_Timer()
If frm_FTPTrans.icFTP.ResponseCode = 12003 Then
    frm_FTPTrans.icFTP.Cancel
    bFTPReady = True
    MsgBox "De Server kan het bestand Personeel.SDS niet vinden, mogelijk is de server niet beschikbaar, probeer het opnieuw"
End If

If bFTPReady = True Then
    tmr_w4FTP.Enabled = False
    Call Login_Basis
End If
End Sub

[ Voor 9% gewijzigd door roy-t op 18-05-2007 09:20 ]

~ Mijn prog blog!