|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Sep 2000
Messaggi: 125
|
VB: Come si fa una Sleep?
So che la domanda può essere banale, ma del resto sono un novizio di VB
Mi aiutate? |
|
|
|
|
|
#2 |
|
Member
Iscritto dal: Aug 2001
Città: Gerenzano
Messaggi: 129
|
Utilizza l'API apposita.(Imposti il numero di millisecondi di attesa)
Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) es: sleep 1000 ' *** (Attende 1 secondo) |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Sep 2000
Messaggi: 125
|
Grazie.
Il mio problema era in effetti che non immaginavo nemmeno come si facesse ad "includere" una api. Ora che lo so ho un altro problema. Dopo aver cambiato la Caption di una Label, ho assoluto bisogno di fare un refresh in modo che venga attivato l'evento Change della label. Come faccio? ho provato Refresh, Me.refresh, Label.Refresh, ma nessuna fa ciò che volevo. |
|
|
|
|
|
#4 |
|
Member
Iscritto dal: Aug 2001
Città: Gerenzano
Messaggi: 129
|
Semplicemente richiami il metodo change della label
es: label1.caption ="testo di esempio" label1_Change Comunque stai attento perchè se imposti una caption differente alla label, scateni in automatico un evento Change. |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Sep 2000
Messaggi: 125
|
Dunque, il mio problema è che il cambio di caption sulla label mi invia un comando sulla seriale. Da codice ho una cosa del genere
MCcommand.Caption=Stringa MCcommand_Change 'Aggiunto su tuo consiglio Sleep(5000) 'Questa è necessaria ... ... In effetti il comando sulla seriale viene inviato dopo l'uscita dalla procedura, ne ho dedotto che l'evento Change della label non viene chiamato, o i messaggi che esso genera non vengono processati subito e restano nella coda dell'applicazione per essere processati all'uscita dalla procedura. Che fò? |
|
|
|
|
|
#6 |
|
Member
Iscritto dal: Aug 2001
Città: Gerenzano
Messaggi: 129
|
Non ho capito una cosa.... tu all'interno dell'evento Change della label invii le informazioni alla seriale... giusto?
Perchè non provi a impostare un punto di interruzione all'interno dell'evento per verificare se viene scatenato correttamente?... al limite x provare basta anche un'istruzione debug.print "Scatenato evento change" ... cosi' puoi verificare se il problema è il mancato richiamo dell'evento(Cosa che escludo) o se il problema è legato al passaggio dei dati alla seriale. mi puoi spiegare come invii i dati alla seriale?... |
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Sep 2000
Messaggi: 125
|
Dunque ora ti spiego il problema e anche come ho risolto.
Devo pilotare un lettore di banda magnetica collegato alla seriale. Il kit di sviluppo fornito dalla casa consiste in un DDE che gestisce a basso livello la comunicazione (io non so COME lo faccia). Io so solo come interfacciarmi con il DDE. I loro esempi scatenavano una chiamata al DDE quando tu cambiavi cio che era scritto in una textbox, ed io mi sono attenuto. Il problema era che avevo una sequenza di istruzioni tipo: MCCommand.caption=stringa1 'visualizza qualcosa sul display del lettore Sleep(2000) 'Diamo il tempo di leggere il display MCCommand.caption=stringa2 'spegne il display Se eseguivo passo passo o debuggando, tutto filava liscio. In esecuzione normale invece avevo: Una attesa di 2 secondi senza che il lettore facesse niente Poi il lettore processava i due messaggi uno dopo l'altro col risultato che ciò che era scritto sul display non si leggeva solo un attimo. Il mio dubbio era che il sistema non processasse i messaggi in coda all'applicazione (leggi i messaggi di repaint della textbox) e quindi non scatenasse l'evento CHANGE correttamente. Credo di aver avuto ragione perchè mi è bastato mettere una semplice DoEvents dopo ogni cambio di caption per ottenere l'effetto corretto. Ciao, dodomio. |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 09:04.



















