+ Rispondi al messaggio
Visualizzazione dei risultati da 1 a 10 su 10

Picture1.BackColor

  1. #1
    xreme non  in linea Scolaretto
    esiste un modo per fare pulsare ad intermittenza questa proprietà?

    Picture1.BackColor
    Ultima modifica di xreme; 02-04-2006 21:04 

  2. #2
    Tu sai che esiste un controllo timer e sai che VB e' un linguaggio di programmazione ...

    Hai almeno tentato ?
    ℹ️ Leggi di pi su AntonioG ...

  3. #3
    xreme non  in linea Scolaretto
    si,
    il fatto che non saprei da dove cominciare.

    allora nel bottone inserisco

    Timer1.Enabled = True
    Timer1.Interval = 60
    Picture1.BackColor = &HFF&

    Private Sub Timer1_Timer()
    invece da dove comincio?
    End Sub

  4. #4
    L'avatar di stef
    stef non  in linea Scribacchino
    No, scusa ma stai sbagliando tutto .
    Ci sono diversi modi per farlo, a me il primo che viene in mente è questo.

    Allora, inserisci due timer: uno lo chiami Timer1 e imposti tramite la finestra Proprietà il valore ad esempio a 1000ms con Enabled a True; l'altro lo chiami Timer2 e imposti anche a lui come timer 1000ms (ad esempio) ma Enabled lo metti a False.
    Se P è la nostra picturebox, la routine Timer di Timer1 sarà questa:

    Private Sub Timer1_Timer()
    P.BackColor = vbRed
    Timer1.Enabled = False
    Timer2.Enabled = True
    End Sub

    quella di Timer2, invece, questa:

    Private Sub Timer2_Timer()
    P.BackColor = vbGreen
    Timer2.Enabled = False
    Timer1.Enabled = True
    End Sub

    Così si ottiene un lampeggiamento (rosso-verde-rosso) con intervallo di 1 secondo che parte al caricamento del Form.

    Se poi vuoi attivare la sequenza di lampeggiamento con un pulsante, allora fai così: metti anche Timer1 a False e poi scrivi la routine del pulsante:

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

    Come arrestare il lampeggiamento con il pulsante.......beh questo lo lascio fare a te perché è veramente semplice! :P

    Ciao!
    Stefano
    ℹ️ Leggi di pi su stef ...

  5. #5
    Interval e' in millisecondi ... quindi 60 millisecondi e' un po' troppo poco ...

    Inserisci 500 (ovvero mezzo secondo ...) al posto di 60 ...

    Pero' Stef, basta un semplice timer ...

    Private Sub Timer1_Timer()
        If Picture1.BackColor = vbRed Then
            Picture1.BackColor = &H8000000F
        Else
            Picture1.BackColor = vbRed
        End If
        DoEvents
    End Sub
    
    ℹ️ Leggi di pi su AntonioG ...

  6. #6
    L'avatar di stef
    stef non  in linea Scribacchino
    Quote Originariamente inviato da AntonioGiuliana
    Interval e' in millisecondi ... quindi 60 millisecondi e' un po' troppo poco ...

    Inserisci 500 (ovvero mezzo secondo ...) al posto di 60 ...

    Pero' Stef, basta un semplice timer ...

    Private Sub Timer1_Timer()
        If Picture1.BackColor = vbRed Then
            Picture1.BackColor = &H8000000F
        Else
            Picture1.BackColor = vbRed
        End If
        DoEvents
    End Sub
    
    Verissimo Antonio, tant'è vero che quello che ho postato io è stato il primo che mi è venuto in mente......il mio poi è più lungo ma forse più "schematico" nel senso che è un pochettino più intuitivo......tu utilizzi l'istruzione If e il DoEvents e, se il nostro amico è nuovo di VB, magari non capisce bene tutto il codice.....

    Stefano
    ℹ️ Leggi di pi su stef ...

  7. #7
    Beh ... in realta' il DoEvents potrebbe essere necessario in ogni caso perche' la Picture possa sempre e correttamente cambiare colore ... ma potrebbe anche non esserlo se il rinfresco avviene in tempi accettabili ... (puo' quindi essere rimosso ...)

    E la If e' una struttura di base senza la quale non si va da nessuna parte con nessun linguaggio ...

    Semmai, consiglierei a xreme di studiare anche questa semplice soluzione ...

    Private Sub Timer1_Timer()
        Picture1.BackColor = IIf(Picture1.BackColor = vbRed, vbWhite, vbRed)
    End Sub
    
    ℹ️ Leggi di pi su AntonioG ...

  8. #8
    L'avatar di GarGia1960
    GarGia1960 non  in linea Scolaretto
    Come sempre il guru AntonioGiuliana ha vinto con la versione piu' semplice.



  9. #9
    xreme non  in linea Scolaretto
    bene,
    ringrazio entrambi, in questo istante non posso testare il code, lo farò più tardi, ancora una curiosità, o meglio una delucidazione:
    il tempo del timer viene impostato dal programmatore in ms "500", bene questo sicuramente funzionerà in modo forzato, o meglio obbligato Timer.Intervall= "500", invece è possibile o meglio è fattibile che il timer.intervall sià regolato in base al tempo che impiega il/i processi all'interno del bottone? "solo curiosità"
    Ultima modifica di xreme; 03-04-2006 10:39 

  10. #10
    Non capisco cosa vuoi dire ... e cosa c'entri con il "lampeggiamento" ...
    ℹ️ Leggi di pi su AntonioG ...

+ Rispondi al messaggio

Potrebbero interessarti anche ...

  1. Risolto: [VS 2008 Pro]Propriet Picture1.TextWidth VB6 (centrare testo in Picture)
    Da sistemista nel forum Visual Basic .Net
    Risposte: 3
    Ultimo Post: 04-04-2012, 08:49
  2. BackColor ToolBar
    Da Carmen nel forum Visual Basic 6
    Risposte: 10
    Ultimo Post: 31-05-2007, 15:23
  3. Problema backcolor
    Da Mercante in fiera nel forum Visual Basic 6
    Risposte: 10
    Ultimo Post: 16-04-2006, 03:07
  4. Picture1 con Sfumatura
    Da Smith nel forum Visual Basic 6
    Risposte: 9
    Ultimo Post: 24-12-2005, 09:08
  5. BackColor MSHFlexGrid
    Da Morpheus80 nel forum Visual Basic 6
    Risposte: 2
    Ultimo Post: 23-09-2004, 18:02