Gå til innhold

Heftige timer problemer!


Anbefalte innlegg

Hei, heftig og heftig, er litt innvikla er vel det hele.

 

Problemet mitt er følgende:

 

Jeg har en timer og noen Labels og når programmet starter setter den 2 labels på 0 og i det

labelsene viser 0 skal de gjøre en handling som da står i den timeren jeg prata om, men det som er da at interval står på 0 på timeren, og den prøver og gjøre begge handlingene

samtidig i en webbrowser, så klart kan jeg sette opp flere webbrowsere, men vil ha alt i en

så det jeg må få til er da at den venter mellom handlingene, eksempel kode under:

 

Her er et mini eksempel, begge handlingene står i samme timer... og begge er i IF statement.

If label1.caption = "0" Then
Handling1
End if

If label2.caption = "0" Then
Handling2
End If

 

hvordan få den til og vente til den ene If statementen er

ferdig før den begynner på den andre, eller en annen metode?

 

Takk for alle svar!

 

 

Mvh

Andrew Larsen

Endret av Spenzer
Lenke til kommentar
Videoannonse
Annonse

Hm, hvorfor benytter du merknadsbokser? Dersom brukeren absolutt må se denne verdien, er det langt bedre å heller oppdatere kontrollene fra noen interne variabler.

 

Nåvel. Du ønsker altså å vente til den eksekverte, asynkrone (som returnerer før den har fullført) handling har fullført? Den enkleste måten (i VB6) er å sette en løkke til å kjøre inntil en global Boolean-variabel blir endret av en hendelsesprosedyre som kjøres når eksekveringen er ferdig:

Private Declare Sub Sleep Lib "kernel32" (ByVal Milliseconds As Long)

 

' Enkel array som determinerer hvorvidt vi skal kjøre en handling eller ei

Private Execute(1 To 2) As Boolean

 

' Brukes for å vente til en handling er utført

Private Done As Boolean

 

Private Sub Timer1_Timer()

 

    If Excecute(1) Then

        WebBrowser1.Naviage "http://www.google.com/"

        WaitUntil Done

    End If

   

    If Excecute(2) Then

        ' Osv.

    End If

   

End Sub

 

Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)

 

    ' Informer om hendelsen

    Done = True

   

End Sub

 

Public Sub WaitUntil(Reference As Boolean)

 

    ' Tilbakestill verdi (mulig en bør sette denne sist)

    Reference = False

 

    Do Until Reference

        DoEvents ' Forhindrer at entrådsprogrammet "låser seg" (ved å svare på vindusprosedyren).

        Sleep 10 ' Venter i ti millisekunder da en ellers risikerer å forbruke 100% av CPU-tiden

    Loop

 

End Sub

Lenke til kommentar
  • 2 uker senere...
Men hvis spørsmålet er hvordan strukturmessig bare oppfylle den ene betingelsen (her X og Y for å forlate label-opprøret), så skriv det gjerne sånn

 

If X Then

  Handling 1

Else

      If Y Then

        Handling 2

      End IF

End IF

 

HTH. Beste hilsen Harald

9488226[/snapback]

 

Jeg fant ut feilen selv, men vil bare nevne noe om ditt forslag Harald Staff...

 

why not ElseIf ? :p like greit det vel ^^

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...