Spenzer Skrevet 11. september 2007 Del Skrevet 11. september 2007 (endret) 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 11. september 2007 av Spenzer Lenke til kommentar
aadnk Skrevet 11. september 2007 Del Skrevet 11. september 2007 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
GeirGrusom Skrevet 13. september 2007 Del Skrevet 13. september 2007 Jeg gjetter at trådstarter ikke bruker variabler enda. Lenke til kommentar
Manfred Skrevet 13. september 2007 Del Skrevet 13. september 2007 Like greit å ha verdiene i labels, så kan man hele tiden følge med på de Lenke til kommentar
aadnk Skrevet 13. september 2007 Del Skrevet 13. september 2007 Jeg gjetter at trådstarter ikke bruker variabler enda. 9484601[/snapback] Da er det jammen på tide han tar dem i bruk. Slikt er nokså fundamentalt, for å si det slik. Lenke til kommentar
Harald Staff Skrevet 13. september 2007 Del Skrevet 13. september 2007 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 Lenke til kommentar
Spenzer Skrevet 24. september 2007 Forfatter Del Skrevet 24. september 2007 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 ? like greit det vel ^^ Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå