Hallo Ramon,
 ich kann dein Problem nicht nachvollziehen. Deshalb ich gehe davon aus, dass du blnExit als Public-Variabale definiert hast und in der Routine für den Pausenknopf, die du leider nicht mitgeschickt hast, die Variable beim ersten Drücken auf True und beim zweiten Drücken auf False setzt, um die Do-Loop-Schleife wieder zu verlassen. Warum beim Verschieben einer Scrollleiste blnExit verändert wird, ist ohne den Code unklar. DoEvents führt das Verschieben aus und kehrt ohne Veränderung zurück, wenn keine anders lautenden Anweisung erfolgten. Vielleicht kannst du beim Pausenknopf noch eine andere Public-Variable einsetzen, die dir in der Do-Loop-Schleife indiziert, dass der Pausenknopf und kein anderes Ereignis zum Umstellen der blnExit führte.
 Viel Erfolg
 Holger
 
 
 Ramon  schrieb am 03.11.2008 23:56:35:
 
 ich habe ein problem...
 ich moechte eine anwendung, die jede sekunde einen wert aus einem speicher liesst, per knopfdruck pausieren lassen (nicht stopen).
 
 Hier die komplette methode:
 
 private Sub cmdRead_Click()
     
     Dim SHandles(50) As Long 'parameter value
     Dim Values() As Variant 'return value
     Dim Errors() As Long    'return value
     Dim Qual As Variant     'return value
     Dim TS As Variant       'return value
     Dim i As Integer
     
     blnExit = False
     
     'save ServerHandles
     Do Until j = 50
     
     'opportunity to check other events
     DoEvents
         Do Until blnExit = False
         DoEvents
         Loop
     
     SHandles(j) = MyOPCItems(j).ServerHandle
         
     Call MyOPCGroup.SyncRead(OPCCache, 50, SHandles, Values, Errors, Qual, TS)
    
    'fill the cells with the read values
    If Cells(8 + j, 5) <> Values(j) Then
     Cells(9 + j, 5) = Values(j)   'column "read"
     Cells(9 + j, 6) = Qual(j)     'column "quality"
     Cells(9 + j, 7) = Now       'column "timestamp"
     deviceCounter = deviceCounter + 1
    j = j + 1
    Call autoSaveAndPrint
    End If
    Loop
     
 End Sub
 
 das Problem dabei ist, da in der Schleife immer mit DoEvents abgefragt wird, 
 pausiert die Anwendung auch wenn ich zum Beispiel an der Scroll-Leiste ziehe, was natuerlich nicht sein sollte.
 
 Weiss jemand, wie ich die Anwendung pausieren lassen kann, aber nur auf knopfdruck???
 Gruesse     |