Oppure

Loading
24/06/10 14:55
Adler94
allora io ho usato questo codice per fare in modo che l'immagine si muovesse da sinitra verso destra

Private Sub Form_Load()
Dim a As Integer
For a = 1 To 10
Image1.Left = Image1.Left - Image1.Width \ -1
Next a
End Sub


solo che invece di muoversi, l'immagine appare direttamente spostata verso destra....
dove ho sbagliato?
Ultima modifica effettuata da Adler94 24/06/10 15:03
aaa
24/06/10 16:01
Alfonso
Private Sub Form_Load()
Dim a As Integer
For a = 1 To 10
Image1.Left = Image1.Left - Image1.Width \ -1 
DoEvents ' questo ti fà vedere gli spostamenti 
' però la velocità è altissima
' quì devi mettere un ritardo altrimenti non hai il tempo di vedere lo spostamento, l'immagine è velocissima
Next a
End Sub

Ultima modifica effettuata da Alfonso 24/06/10 16:38
aaa
24/06/10 18:35
Adler94
Grazie alfonso ma per il ritardo è un altro problema.....
io ho provato a usare il comando sleep così:

Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private Sub Form_Load()
Dim a As Integer
For a = 1 To 10
Image1.Left = Image1.Left - Image1.Width \ -1
DoEvents
Sleep (100)
Next a
End Sub


solo che se scrivo kernel32 tra virgolette, dopo 100 millisecondi si avvia il progetto, mentre io dovrei mettere una pausa tra i cicli.....
Ultima modifica effettuata da Adler94 24/06/10 18:44
aaa
24/06/10 18:41
Alfonso
Se quella che hai illustrato è l'unica routine che muove controlli immagini, va bene una sleep.
Se fai movimenti più complessi o muovi più controlli, normalmente si usa un controllo timer che ad ogni tick incrementa una variabile che è il valore da attribuire ad image.left ed eventualmente ad image.top o ad altri controlli immagine.

Edit:
Scusa ma ho inviato mentre tu stavi editando.
Non capisco cosa intendi con:
"solo che se scrivo kernel32 tra virgolette, dopo 100 millisecondi si avvia il progetto"
Ultima modifica effettuata da Alfonso 24/06/10 18:57
aaa
24/06/10 18:58
Adler94
scusa alfonso, ho modificato il messaggio precedente credendo che non l'avessi ancora letto...
comunque come detto sopra, usando questo codice:
Private  Declare Sub Sleep Lib "kernel32" (ByVal  dwMilliseconds As Long)
Private Sub Form_Load()
Dim a As Integer
For a = 1 To 10
Image1.Left = Image1.Left - Image1.Width \ -1
DoEvents
Sleep (100)
Next a
End Sub


caricando la libreria kernel32 dopo 100 millisecondi mi si avvia il progetto mentre io devo mettere una pausa tra i cicli
Ultima modifica effettuata da Adler94 24/06/10 19:14
aaa
24/06/10 19:10
Alfonso
caricando la libreria kernel32 dopo 100 millisecondi mi si avvia il progetto mentre io devo mettere una pausa tra i cicli


Continuo a non capire perchè fai questa affermazione. Come fai a valutare un ritardo di 100 millisecondi nell'apertura del programma?
Ma dopo che si è avviato vedi muoversi l'immagine?
E quando viene mostrata a video la form?
aaa
24/06/10 19:16
Adler94
scusami cerco di spiegarmi meglio:


io ho capito che se nella riga
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

sta scritto tra virgolette kernel32(cioè se carico la libreria kernel32)
quando metto lo sleep non mette una pausa tra i cicli, ma blocca tutto il sistema per un determinato periodo (in questo caso 100 millisecondi)

questo e quello che ho capito io e comunque io non sono molto esperto in visual basic
ho iniziato da poco e con le API ci so fare ancora poco
quindi correggimi si ho sbagliato (quasi sicuro di si:) )
Ultima modifica effettuata da Adler94 24/06/10 19:17
aaa
24/06/10 19:17
Alfonso
Ti prego di non editare più i messaggi che hai già scritto, se non non ne veniamo più fuori da questo guazzabuglio.
aaa