Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    193

    Animazione con 10 image

    Ciao a tutti
    sto creando un form con una specie di animazione con 10 immagini ma ho dei piccoli problemi:
    alla pressione dei commandbutton cmdbpiu e cmdbmeno deve andare in primo piano 1 immagine e questo avviene solo che si vedono scattare quelle sotto ed č molto antiestetico,invece alla pressione di xpiu e xmeno le immagini si spostano a sinistra e a destra nello schermo solo che ho un'effetto trascinamento altrettanto brutto.
    Mi spiego meglio:
    l'immagine č un'oggetto che in ogni foto č ruotato di 45 gradi quindi passando in primo piano ad ogni pressione di bpiu simula una rotazione,poi devo spostare l'immagine che č in primo piano a sinistra e adestra come se l'oggetto si muovesse lungo un asse.
    col seguente codice questo avvine ma dire che č orribile č poco.


    Dim i As Integer
    Dim E As Integer

    Private Sub cmdbmeno_Click()
    If E > 360 Then
    E = E - 10
    ElseIf E < 361 Then
    E = E - 45
    End If
    gradib.Text = E
    gradib.Text = gradib.Text + "°"


    i = i - 1
    'codice per visualizzare l'immagine

    Image1(i).ZOrder 0

    If i = 0 Then cmdbmeno.Enabled = False

    cmdbpiu.Enabled = True

    End Sub

    Private Sub cmdbpiu_Click()
    If E < 360 Then
    E = E + 45
    ElseIf E = 360 Then
    E = E + 10
    End If
    gradib.Text = E
    gradib.Text = gradib.Text + "°"


    i = i + 1
    'codice per visualizzare l'immagine
    Image1(i).ZOrder 0

    If i = 9 Then cmdbpiu.Enabled = False

    cmdbmeno.Enabled = True

    End Sub

    Private Sub cmdzpiu_Click()

    canotto2.Left = 1500 ' Imposta la parte sinistra sull'origine.
    canotto2.Top = 1400 ' Imposta la parte superiore sull'origine.


    End Sub

    Private Sub cmdzmeno_Click()

    canotto2.Left = 1500 ' Imposta la parte sinistra sull'origine.
    canotto2.Top = 0 ' Imposta la parte superiore sull'origine.

    End Sub

    Private Sub Form_Load()
    For Each Item In Me.Controls
    If TypeOf Item Is Image Then Item.Left = 500
    If TypeOf Item Is Image Then Item.Top = 4000
    Next
    cmdbmeno.Enabled = False
    gradib.Text = "0°"
    i = 0
    canotto2.Left = 1500 ' Imposta la parte sinistra sull'origine.
    canotto2.Top = 0 ' Imposta la parte superiore sull'origine.
    For N = 0 To 9
    Image1(0).ZOrder 0
    Image1(N).Top = 4000
    Image1(N).Left = 1500

    Next

    End Sub


    Private Sub xmeno_Click()
    For N = 0 To 9
    Image1(N).Top = 4000
    Image1(N).Left = 3000
    Next
    End Sub

    Private Sub xpiu_Click()
    For N = 0 To 9

    Image1(N).Top = 4000
    Image1(N).Left = 0

    Next
    End Sub

    Accetto ogni consiglio
    Grazie

  2. #2
    Che tipo di immagini sono ?
    L'approccio sembra buono, se lamenti problemi di visualizzazione penso si tratti di immagini GIF che con un colore trasparente...

    Se questo č il tuo caso, per ridurre lo sfarfallio prodotto dal movimento, dovresti nascondere l'image, spostarla e renderla nuovamente visibile.

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    193
    le immagini sono bitmap e hanno uno sfondo di colore giallo,lo stesso che ho usto per lo sfondo del form,non so come fare ma la mia idea era quella di portare l'immagine che mi serve in primo piano,lasciare lo sfondo in secondo e le altre foto sotto lo sfondo ma con zoorder posso avere solo 2 livelli e in questo caso me ne servirebbero 3....
    oppure pensavo di caricare le immagini in un punto nascosto e poi alla pressione del tasto visualizzare quella che mi serve nella casella image che si muove nello schermo invece che fare 10 caselle sovrapposte.


  4. #4
    Utente di HTML.it L'avatar di MMarzia
    Registrato dal
    Mar 2001
    Messaggi
    1,781
    ricorda di specificare sempre linguaggio e versione..
    io sono festosamente cicciottello :: e. cartman

    t'amo senza sapere come, nč quando nč da dove,
    t'amo direttamente senza problemi nč orgoglio:
    cosė ti amo perchč non so amare altrimenti

  5. #5
    Ciao,
    ...ma con zoorder posso avere solo 2 livelli e in questo caso me ne servirebbero 3....
    questo puoi risolverlo facendo Zorder sulle immagini partendo da quella che vuoi mettero dietro a tutte fino ad arrivare a quella che vuoi in primo piano.

    oppure pensavo di caricare le immagini in un punto nascosto e poi alla pressione del tasto visualizzare quella che mi serve nella casella image che si muove nello schermo invece che fare 10 caselle sovrapposte.
    E' una buona soluzione !
    Mai usato i file di risorse.
    Come "punto nascosto" potresti usare proprio un file di risorse... ecco come fare:
    - dal menu "Add-Ins" di VB clicca su "Add-In Manager",
    - si apre una dialog con una lista,
    - trova e seleziona sulla lista la voce "VB6 6 Resource Editor",
    - Spunta le checkbox "Loaded/Unloaded" e "Load On StartUp",
    - clicca su Ok.

    Notarai che sulla toolbar di VB si č aggiunta un'icona,
    č quella del VB6 Resource Editor: ossia l'editor di file di risorse.

    Clicca su questa icona e si aprirā una finestrella con una toolbar che presenta alcuni pulsanti.
    Individua sulla toolbar il pulsante "Add bitmap..." (č la descrizione comando del pulsante),
    cliccaci sopra e si aprirā la dialog per selezionare un'immagine Bitmap.
    Seleziona l'immagine che vuoi, aggiungi tutte quelle che ti servono...
    Noterai che le immagini vengono inserite in una struttura ad albero (Bitmap) e sono tutte indicizzate a partire da 101.
    Una volta che hai iinserito tutte le immagini, sulla toolbar del VB6 Resource Editor, troverai il pulsante SALVA.
    Cliccai sopra e salva il file *.res nella cartella del tuo progetto. Poi puoi chiudere il VB6 Resource Editor.

    A questo punto hai creato un file di risorse.
    Questo file non č altro che un file che contiene risorse utilizzate dal tuo programma.
    Al momento della compilazione del tuo progetto, queste risorse verranno inserite all'interno dell'eseguibilie.
    Mettendo delle immagini (o altro) tra le risorse, non hai bisogno di caricarle da percorsi-file esterni...quindi non devi neanche distribuirle insieme all'eseguibili, non hai il problema che l'utente possa eliminare i file d'immagine usati dalla tua applicazione... Ottimo no ?

    A questo punto devi sapere come fare a caricare le immagini dal file di risorse con il tuo codice VB. Semplice:

    Me.Picture = LoadResPicture(101, vbResBitmap)

    questo carica la bitmap indicizzata con 101 sullo sfondo del form. La costante vbResBitmap serve proprio ad indicare che stai caricando dalle risorse Bitmap.
    Con vb6 Resource Editor puoi aggiungere alle risorse anche icone (vbResIcon) e puntatori (vbResCursor).

    Ok ?

    Ciao
    Simo

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    193
    Grazie funziona perfettamente con il file di risorse,era esattamente quello che mi serviva
    A dire il vero ci avevo provato col file di risorse(anche se non sapevo come usarlo) ma non mi funzionava ,l'avevo fatto caricare ma quando aprivo la finestra delle risorse non avevo nulla di cliccabile sulla toolbar,oggi ho aggiunto l'ultima opzione nel caricamento e cioč "riga di comando" e mi funziona perfettamente.
    Grazie 1000 simone

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.