Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    41

    Una imagebox che si sposta (vb6)

    Buonasera.
    IL mio problema:
    Su un form ho 3 imagebox. Vorrei che, premendo su un commbutton image1 si sposti per un secondo sulla image2. Quindi si sposti sulla image 3. Torni quindi al punto di partenza.
    E cosi sempre di continuo finché non viene fermato il ciclo tramite un button stop.
    E' chiaro che arrivando sulla image2 e poi sulla tre la prima image copre lmomentaneamente le altre immagini, ma non le deve sostituire. Semplicemente passarci sopra per un secondo.

    Io ho quasi risolto tramite Move.
    Ecco il mio piccolo codice:

    Private Sub Timer1_Timer()
    timer1.interval=300
    Image1.Move 3000, 360
    Image1.Move 3120, 1680
    End Sub

    Il mio problema é che la image1 va sulla image2 ma non va oltre sulla image3 e nemmeno ritorna al punto di partenza per ricominciare il ciclo.
    Qualcuno un'idea come cambiare/modificare il codice ?
    Inoltre vorrei che il movimento sia morbido, non brusco, tipo quello che vediamo in windows quando si copia un file tra cartelle.

    grazie
    pazienza

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Linguaggio?

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    41
    E' scritto nel titolo , vb 6

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da pazienza
    E' scritto nel titolo , vb 6
    Avrei giurato che non ci fosse quando l'ho letto ... forse perche', come da regolamento, lo cerco all'inizio del post

    [VB6] ...

    Per il tuo problema, naturalmente devi operare per passi ...

    Nel codice del Timer (che verra' richiamato, supponiamo, ogni 200 millisecondi) dovrai indicare con delle variabili, la nuova posizione di Image1 in modo che si avvicini a quelle di Image2 ... e cosi' via ...

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    41
    Si , le variabili avvicinerebbero gradualmente image1 a image2....
    Ma l'altro problema (image1 su image2 e poi su image3 e ritorno...)
    quello é forse più complesso..
    Se possibile un aiutino più dettagliato, in quanto questa tecnica (move...) non é che la si usa giornalmente.;

    grazie comunque.

    pazienza

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Non si usa giornalmente il move, ma e' semplice ...

    Adesso non ho tempo per dettagliare il codice, ma penso sia semplice gestire una variabile di "stato" che ti indichi in quale fase sei dei tuoi spostamenti ...

    Nel Timer fai un test del tipo

    Se Stato = 1 Allora
    ' Fai un piccolo move per raggiungere la Picture2
    ' Se l'hai raggiunto allora Stato = 2
    ' Termina

    Se Stato = 2 Allora
    ' Fai un piccolo move per raggiungere la Picture3
    ' Se l'hai raggiunto allora Stato = 3
    ' Termina

    Se Stato = 3 Allora
    ' Fai un piccolo move per raggiungere la Picture1
    ' Se l'hai raggiunto allora Stato = 1
    ' Termina

    ....

    Ovviamente questo e' uno spunto ...

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    41
    Ok, Oregon.
    Credo di aver capito come impostare la faccenda.
    Credo di riuscirci.
    Se ci fosse qualcosa ....torno qui.

    grazie per l'aiuto
    pazienza

  8. #8
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    41
    Cercando cercando ho trovato forse un sistema più semplice per ottenere quanto cercavo e chiedevo.
    Con questo codice image1 si muove dolcemente sul form fino a scomparire dallo stesso.

    Private Sub Command1_Click()
    Timer1.Enabled = True
    End Sub

    Private Sub Timer1_Timer()
    If Image1.Top > 0 Then
    Image1.Move Image1.Left + 20, Image1.Top + 50
    Else
    Image1.Visible = False

    Timer1.Enabled = False
    End If
    End Sub

    Potrebbe qualcuno adesso aiutarmi ad indirizzare image1 verso image2.left 4000, image2.top 2640 e poi verso image3.left 5400, image3.top 3000?
    e quindi che si fermi là?

    grazie
    pazienza

  9. #9
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Pensavo che tu avessi risolto sull'altro forum ....

  10. #10
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    41
    Si, ma con questa nuova routine potrebbe essere più soddisfacente.
    IL problema iniziale era proprio lo spostamento 'morbido' tra una image ed un'altra.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.