Hoi,
Ik heb een programma waarbij ik in een functie, eerst waarde 1 moet posten en als dat gedaan is, dus als de document.completed is, dan pas verder. Ik weet dat dat gedaan kan worden met DocumentCompleted. Als je dat doet krijg je wel zo'n ontzettende zooi in je code en het wordt een pain om daarna weer de volgende waarde te posten. Ik heb even gegoogled en ik heb dit alternatief gevonden:
Maar dat hij dus niet, hij blijft hangen bij die loop.
Mijn eigen code ter controle:
Het DoEvents() doet het dus niet. Als je mijn code ziet snap je ook wel waarom ik liever niet met DocumentCompleted werk, hierna komt namelijk nog een paar keer van hetzelfde.
--edit--
ik vergat te zeggen dat hij de pagina dus helemaal niet meer laadt als DoEvents() erin staat. Als ik die loop wegglaat, dan laadt hij hem te laat, maar dan doet hij het in ieder geval wel. Nou loopt hij gewoon vast, je kan het programma niet eens meer normaal afsluiten!
Wie o wie kan mij nu weer helpen?
--edit2--
en, zoals het een tweaker betaamt, ben ik er alsnog achter gekomen. Na veel veel googlen vond ik:
Dat lijkt te werken! Enige probleem is dat hij de waardes niet goed post, ik denk alleen niet dat het door deze loop komt!
Ik heb een programma waarbij ik in een functie, eerst waarde 1 moet posten en als dat gedaan is, dus als de document.completed is, dan pas verder. Ik weet dat dat gedaan kan worden met DocumentCompleted. Als je dat doet krijg je wel zo'n ontzettende zooi in je code en het wordt een pain om daarna weer de volgende waarde te posten. Ik heb even gegoogled en ik heb dit alternatief gevonden:
Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| Private Sub loadURL(ByRef browser As WebBrowser, ByVal url As String) browser.Tag = "loading" browser.Navigate(url) End Sub MainBrowser.DocumentCompleted(ByVal..............) MainBrowser.Tag = "loaded" End Sub btnSearch_Click(ByVal......) loadURL(mainBrowser, "www.google.com") Do While mainBrowser.Tag = "loading" Application.DoEvents 'hierdoor zou de browser door moeten gaan met laden Loop ' do stuff End Sub |
Maar dat hij dus niet, hij blijft hangen bij die loop.
Mijn eigen code ter controle:
Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
| If blok >= 2000 Then loadURL(WebAction3, "http://www.voorbeeld.nl", "koop=1&hoeveelheid=1") MsgBox("Blok is groter dan 2000") Do While WebAction3.Tag = "loading" Application.DoEvents() Loop Call blok() Exit Sub ElseIf volpas >= 3 Then MsgBox("Blokdoos2000 is meer dan 3") loadURL(WebAction3, "http://www.voorbeeld.nl", "verkoop=1&hoeveelheid=3") MsgBox("Url laden aangeroepen!") Do While WebAction3.Tag = "loading" 'MsgBox("Dit is voor doEvents! En Tag is: " & WebAction3.Tag) System.Windows.Forms.Application.DoEvents() 'MsgBox("Dit is na doEvents En Tag is: " & WebAction3.Tag) Loop MsgBox("3 kleine dozen verkocht!") loadURL(WebAction3, "http://www.voorbeeld.nl", "koop=2&hoeveelheid=1") Do While WebAction3.Tag = "loading" System.Windows.Forms.Application.DoEvents() Loop MsgBox("1 grotere doos gekocht!") Call blok() Exit Sub |
Het DoEvents() doet het dus niet. Als je mijn code ziet snap je ook wel waarom ik liever niet met DocumentCompleted werk, hierna komt namelijk nog een paar keer van hetzelfde.
--edit--
ik vergat te zeggen dat hij de pagina dus helemaal niet meer laadt als DoEvents() erin staat. Als ik die loop wegglaat, dan laadt hij hem te laat, maar dan doet hij het in ieder geval wel. Nou loopt hij gewoon vast, je kan het programma niet eens meer normaal afsluiten!
Wie o wie kan mij nu weer helpen?
--edit2--
en, zoals het een tweaker betaamt, ben ik er alsnog achter gekomen. Na veel veel googlen vond ik:
Visual Basic:
1
2
3
4
5
6
| While (WebAction3.IsBusy = True) ' Theoretically we shouldn’t need this, but experience says otherwise. ' If we just bang on the IsBusy() method we will use up a lot of CPU time ' and probably bog down the entire computer. Application.DoEvents() End While |
Dat lijkt te werken! Enige probleem is dat hij de waardes niet goed post, ik denk alleen niet dat het door deze loop komt!
[ Voor 15% gewijzigd door ikkuhqhp op 01-06-2008 19:46 ]