Ebbene... c'e' in Visual Basic una funzione analoga alla DELAY() del
Pascal? Una funzione cioe' che faccia passare tot secondi (o
centesimi di secondo) senza fare nulla?
Grazie!
Ciao, Paolo.
FACILE...
Public Sub Delay(Secondi as integer)
Dim start As Single
start = Timer
Do While Timer < start + delay
DoEvents
Loop
End Sub
PS il doevents e' necessario per non bloccare tutti gli altri
processi...
SW.
E se start + delay superano la mezzanotte ?
Ciao
Francesco C.
>Ebbene... c'e' in Visual Basic una funzione analoga alla DELAY() del
>Pascal? Una funzione cioe' che faccia passare tot secondi (o
>centesimi di secondo) senza fare nulla?
Puoi usare anche la funzione Sleep del Kernel. La trovi nelle API.
Questa funzione "congela" il tuo thread per il tempo specificato. Non va
bene se la tua applicazione ha timers attivi, poiche' anch'essi vengono
congelati. E' ottima, invece, se ci sono altri threads o processi
diversi da quello cui chiami Sleep, perche' tempo di CPU viene dedicato
a loro.
Ciao
Gian Michele Bertoni
--
Home Page: http://space.tin.it/computer/gbertoni/
>Ciao a tutti!
> e' da pochissimo che ho iniziato a programmare in
>Visual Basic, prima lavorar\vo su Pascal e Delphi.
>
>
>Grazie!
>
>
>
>Ciao, Paolo.
>E se start + delay superano la mezzanotte ?
E' vero ho controllato....
SW.
>Ciao a tutti!
> e' da pochissimo che ho iniziato a programmare in
>Visual Basic, prima lavorar\vo su Pascal e Delphi.
>
>Ebbene... c'e' in Visual Basic una funzione analoga alla DELAY() del
>Pascal? Una funzione cioe' che faccia passare tot secondi (o
>centesimi di secondo) senza fare nulla?
>
Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
A questo punto l'istruzione
Sleep(100)
manda a dormire il tuo programma per un decimo di secondo (senza
consumare CPU).
Ciao
--------------------------------------------------------------------
Fulvio Senore
Eliminate "zz" dall'indirizzo e-mail per scrivermi (spammers...)
Remove "zz" from e-mail address to write me (spammers...)
--------------------------------------------------------------------
Si aspettano 24 ore in più.
>Ciao
>Francesco C.
>>Ebbene... c'e' in Visual Basic una funzione analoga alla DELAY() del
>>Pascal? Una funzione cioe' che faccia passare tot secondi (o
>>centesimi di secondo) senza fare nulla?
>
>Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
>A questo punto l'istruzione
>Sleep(100)
>manda a dormire il tuo programma per un decimo di secondo (senza
>consumare CPU).
Grazie mille a tutti!
Risolto :)
Solo una cosa.... lo so che dovra' necessariamente essere una
stronzata ma non ho trovato nell'help nessun chiarimento:
Per cosa si mette il segno del dollaro dopo una variabile o una
funzione? Chr$() o Buffer$
Cosa sta ad indicare?
Scusate ma....
Ciao, Paolo.
No non si esce piů
>Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
>
>A questo punto l'istruzione
>
>Sleep(100)
Interessante....
SW.
Sub Sleep (delay As Double)
'Attende "delay" secondi prima di proseguire
Dim tempTime As Double
tempTime = Timer
While Timer - tempTime < delay
DoEvents
If Timer < tempTime Then
tempTime = tempTime - 24# * 3600#
End If
Wend
End Sub
2) Il carattere di definizione di tipo serve a forzare il tipo di dato che
riporta una funzione.
Dato dim x as variant
Se invochi
x=chr(65)
x sarà di tipo "variant", chr(65) sarà anche lui "variant"
se invochi
x=chr$(65)
x sarà di tipo "variant" ma chr$(65) verrà forzato come tipo "string" e
quindi avviene la conversione da string a variant.
In generale, a parere mio, i caretteri identificatori di tipo servono più
che altro per mantenere un certo grado di compatribilità con lo standard del
BASIC e con i vecchi compilatori Microsoft
Hi to all
Andrea Alberto "Jack" Martinoli
From Italy with a smile! :-)
aa.mar...@pccom.it
andrea.m...@manpower.it
Paolo Rosa ha scritto nel messaggio
<36a64d52...@news.interbusiness.it>...
>On Wed, 20 Jan 1999 17:51:35 GMT, fulzz...@tin.it (Fulvio Senore)
>wrote:
>
>>>Ebbene... c'e' in Visual Basic una funzione analoga alla DELAY() del
>>>Pascal? Una funzione cioe' che faccia passare tot secondi (o
>>>centesimi di secondo) senza fare nulla?
>>
>>Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
>>A questo punto l'istruzione
>>Sleep(100)
Hai aspettato 24 ore davanti al PC ?
>SW.
ciao
>
>Hai aspettato 24 ore davanti al PC ?
>
Si puo fare di meglio :-)))
Cambi l'ora a 23.59 e aspetti con il programma delay in esecuzione...
SW.