Newsgroup: it.comp.lang.visual-basic
Titolo: VB6 Video frizzato dopo Do Loop  AIUTO!!!!!!!!!!!!!!!

Ciao a tutti,
in un programma VB6 uso la seguente Sub per attendere che le uscite di 
un'apparecchiatura da collaudare vadano su e quindi proseguire con il 
collaudo
Private Sub attesa_on()
Start = Timer
    Do
        '"Lettura USCITE"
        nStatus = BCTReadPort(nPciPio1PortBHandle, nVal(0))
        If nStatus = BCT_IO_PENDING Then
            nStatus = BCTWait(nPciPio1PortBHandle, INFINITE)
        End If
        If (nStatus <> BCT_OK) And (nStatus <> BCT_IO_PENDING) Then
            Call BCTErr2Txt(nStatus, szErrorText)
            OutputMessage ("BCTReadPort returned: " + szErrorText)
        End If
        If Timer > Start + 30 Then Risultato = "KO": Exit Sub
    Loop While nVal(0) <> Read_Wake_up
End Sub
Mi si presenta il problema che una volta uscito dal loop, il form 
visualizzato sullo schermo mi rimane frizzato e non visualizza piů le 
informazioni ma continua a funzionare nel senso che funzionano le istruzioni 
seguenti (abilito e disabilito pin scheda acquisizione) ma non riesce piů a 
visualizzare niente.
Ho pensato a DoEvents ma non va bene perchč il programma deve andare avanti 
solo quando nVal(0) = Read_Wake_up.
Avreste qualche suggerimento.
Grazie l'eventuale aiuto.

 Grazie l'eventuale aiuto.
Non è molto chiaro lo scenario complessivo.
Bisognerebbe sapere quand'è che attesa_on viene chiamata, in che modo 
vengono visualizzate le informazioni (quali controlli usi nel form e quale 
codice per aggiornarli).
Bye
Raf

"Rafunk" <rafun...@NOTHANKSlibero.it> ha scritto nel messaggio 
news:g5fbui$rde$1...@alix.livenet.it...

Intato grazie per la risposta, ora cerco di farti capire come uso attesa_on:
Form1:
.
.
.
.
.
    Select Case Bar
        Case "AXM", "VXM", "AXBM"
            Read_Wake_up = 151
        Case "AD", "V", "AX", "AXBK", "JX", "VX", "VXL", "MX"
            Read_Wake_up = 3
        Case "MEA", "MEB", "MEC"
            Read_Wake_up = 15
        Case "MI", "ML", "MT", "J", "XMI", "XML", "XMT", "XLMI", "JL"
            Read_Wake_up = 11
        Case Else
    End Select
 Des.Caption = "ATTENDERE PROVA 2 IN CORSO": Form1.Refresh
    Call attesa_on
    If Risultato = "KO" Then Exit Sub
.
.
.il collaudo continua
.
    Des.Caption = "Istruzioni per la succesiva prova": Form1.Refresh
questo è il label che vorrei far cambiare, ma nonstante dia il comando il 
video è frizzato.

 comando il video č frizzato.
Hai provato semplicemente con
Des.Refresh
DoEvents
?
Bye
Raf 


Ho provato con DoEvents in attesa_on ma non va bene perchè il programma va 
avanti senza attendere nVal(0) = Read_Wake_up, ma in effetti messo dopo
Des.Caption = "Istruzioni per la succesiva prova": Form1.Refresh
Des.Refresh
DoEvents
potrebbe fungere!!!!! Quando riesco provo e ti faccio sapare.
GRAZIE 

Prova a togliere tutti i Refresh, ho l'impressione che siano superflui.
Per 'frizzato' cosa intendi?
Disabiliti per caso il form o parte dei controlli durante il collaudo?
A meno che per qualche motivo non rimanga bloccato nel Loop
(cosa che a priori non mi sembra), il comportamento è strano.
Non è che stai usando male qualche comando?
Vado un pò a naso:
nStatus = BCTWait(nPciPio1PortBHandle, INFINITE)
con questo commando lo metti in attesa infinita,
non è che c'è un altro commando per effetuare un reset o per bloccarlo,
una volta terminato il Loop?
--
Ciao Fede
By Chicco Production
http://bcp.freetools.it

 programma va avanti senza attendere nVal(0) = Read_Wake_up
Non mi è chiaro come faccia il programma ad "andare avanti" semplicemente 
mettendo dei DoEvents in un loop.
Vuol dire che esce dal loop. Ma allora vi sono degli eventi (del form o dei 
controlli) che venendo processati (nel DoEvents), modificano le variabili 
facendo risultare vera la condizione di uscita.
Raf 


Tu hai tutte le ragioni, ma inserendo il DoEvents nel Loop in passato, ti 
parlo di piů di un'anno fa, dava delle anomalie strane,
comunque ho deciso di rimetterlo e analizzare bene cosa succede, ti terrň 
informato magari scrivendoti alla tua mail visto che le news non sono molto 
duttili nelle discussioni nel tempo.
Ciao