Discussion:
Durata lampeggio
(troppo vecchio per rispondere)
Franco
2004-07-04 15:06:07 UTC
Ciao a tutti

uso Access 2003

Ho una maschera dove tramite pulsanti di scorrimento visualizzo i record di
un database.
Nell'evento su corrente, quando un determinato controllo - testo non è vuoto
appare un etichetta e il colore di fondo nel corpo della maschera da grigio
diventa giallo.
Logicamente scorrendo un altro record se non si verifica tale evento lo
sfondo torna grigio (default).
Nell'evento Timer ho messo il seguente codice:
Me.Corpo.BackColor = 8454143 = Not Me.Corpo.BackColor = 8454143
in modo che il colore di sfondo diventi da giallo grigio (default) e cosi
via (effetto lampeggio).
TimerInterval è impostato a 1000.

Vorrei che tale lampeggio duri solo 5 secondi e che lo sfondo rimanga di
colore giallo.


Franco
Valerio Valentini
2004-07-04 22:58:39 UTC
Post by Franco
Ciao a tutti
uso Access 2003
Ho una maschera dove tramite pulsanti di scorrimento visualizzo i record di
un database.
Nell'evento su corrente, quando un determinato controllo - testo non è vuoto
appare un etichetta e il colore di fondo nel corpo della maschera da grigio
diventa giallo.
Logicamente scorrendo un altro record se non si verifica tale evento lo
sfondo torna grigio (default).
Me.Corpo.BackColor = 8454143 = Not Me.Corpo.BackColor = 8454143
in modo che il colore di sfondo diventi da giallo grigio (default) e cosi
via (effetto lampeggio).
TimerInterval è impostato a 1000.
Vorrei che tale lampeggio duri solo 5 secondi e che lo sfondo rimanga di
colore giallo.
Franco
Credo possa funzionare una cosa tipo:

For I = 1 To 5
Me.Corpo.BackColor = 8454143 = Not Me.Corpo.BackColor = 8454143
I = I +1
Next

Ciao Valerio.
namor
2004-07-05 07:26:20 UTC
Post by Franco
Ciao a tutti
uso Access 2003
Ho una maschera dove tramite pulsanti di scorrimento visualizzo i record di
un database.
Nell'evento su corrente, quando un determinato controllo - testo non è vuoto
appare un etichetta e il colore di fondo nel corpo della maschera da grigio
diventa giallo.
Logicamente scorrendo un altro record se non si verifica tale evento lo
sfondo torna grigio (default).
Me.Corpo.BackColor = 8454143 = Not Me.Corpo.BackColor = 8454143
in modo che il colore di sfondo diventi da giallo grigio (default) e cosi
via (effetto lampeggio).
TimerInterval è impostato a 1000.
Vorrei che tale lampeggio duri solo 5 secondi e che lo sfondo rimanga di
colore giallo.
Franco
Me.Corpo.BackColor = 8454143 = Not Me.Corpo.BackColor = 8454143
Che strana questa formula. Ma funziona bene?
Per bloccare il lampeggio imposti una variabile a livello di modulo in
modo che sia visibile da tutte le sub, chiamiamola "Lampeggio".
Sull'evento corrente ne imposti il valore: Lampeggio=5 e modifichi la Sub
Timer
if Lampeggio > 0 then
...cambia colore...
Lampeggio=Lampeggio-1
end if
Tieni conto che se il numero di lampeggi è dispari il colore si fermerà
alternativamente sul giallo o sul grigio. Se vuoi che si fermi sempre
sullo stesso colore usa un numero pari di lampeggi o aggiungi all'If un
Else per reimpostare il giallo.
Namor
--
namor at inwind punto it

questo articolo e` stato inviato via web dal servizio gratuito
http://www.newsland.it/news segnala gli abusi ad ***@newsland.it
Valerio Valentini
2004-07-05 09:03:51 UTC
Post by Franco
Ciao a tutti
uso Access 2003
Ho una maschera dove tramite pulsanti di scorrimento visualizzo i record di
un database.
Nell'evento su corrente, quando un determinato controllo - testo non è vuoto
appare un etichetta e il colore di fondo nel corpo della maschera da grigio
diventa giallo.
Logicamente scorrendo un altro record se non si verifica tale evento lo
sfondo torna grigio (default).
Me.Corpo.BackColor = 8454143 = Not Me.Corpo.BackColor = 8454143
in modo che il colore di sfondo diventi da giallo grigio (default) e cosi
via (effetto lampeggio).
TimerInterval è impostato a 1000.
Vorrei che tale lampeggio duri solo 5 secondi e che lo sfondo rimanga di
colore giallo.
Franco
Credo possa funzionare una cosa tipo:

For I = 1 To 5
Me.Corpo.BackColor = 8454143 = Not Me.Corpo.BackColor = 8454143
I = I +1
Next

Ciao Valerio.
Pablitomf
2004-07-05 10:47:00 UTC
Post by Franco
Ciao a tutti
[cut]
Post by Franco
Me.Corpo.BackColor = 8454143 = Not Me.Corpo.BackColor = 8454143
che strana formula...

Io farei così :

Dim i As Integer
i = 0 'imposta contatore lampeggio

giro:
If Me.Corpo.BackColor = 8454143 then
Me.Corpo.BackColor = 8454143
Else
Me.Corpo.BackColor = 8454143
End If
i = i +1

If i < 5 Then ' 5 lampeggi
goto giro:
Else
End If



..poi fai tu. ;-)
--
Pablitomf

Lentamente muore chi abbandona un progetto prima di iniziarlo, chi non fa
domande sugli argomenti che non conosce, chi non risponde quando gli
chiedono qualcosa che conosce. (P.Neruda)

questo articolo e` stato inviato via web dal servizio gratuito
http://www.newsland.it/news segnala gli abusi ad ***@newsland.it
Franco
2004-07-05 21:37:44 UTC
Post by Pablitomf
Post by Franco
Ciao a tutti
[cut]
Post by Franco
Me.Corpo.BackColor = 8454143 = Not Me.Corpo.BackColor = 8454143
che strana formula...
Dim i As Integer
i = 0 'imposta contatore lampeggio
If Me.Corpo.BackColor = 8454143 then
Me.Corpo.BackColor = 8454143
Else
Me.Corpo.BackColor = 8454143
End If
i = i +1
If i < 5 Then ' 5 lampeggi
Else
End If
..poi fai tu. ;-)
--
Pablitomf
Lentamente muore chi abbandona un progetto prima di iniziarlo, chi non fa
domande sugli argomenti che non conosce, chi non risponde quando gli
chiedono qualcosa che conosce. (P.Neruda)
questo articolo e` stato inviato via web dal servizio gratuito
Grazie a tutti per le risposte.
E' vero ho sbagliato a postare il codice.
Dunque ricapitolando In corrente della Form ho inserito il seguente codice:

If --- un certo campo non è vuoto ---- then

me.etichetta.visible = true
me.corpo.backcolor = 845143 i mposta il colore a giallo
else
me.etichetta.visible= false
me.corpo.backcolor = -2147483633 imposta il colore a grigio (default)
end if

Sull'evento timer della Form il seguente codice

if me.etichetta.visible = true then
if me.corpo.backcolor= 845143 then (colore giallo)
me.corpo.backcolor = -2147483633 (grigio)
else
me.corpo.backcolor = (colore giallo)
end if
end if

TimerInterval = 1000
Il tutto funziona.
Mi scuso con tutti, da principiante che si diletta con Access, ma non ho
capito di come e dove inserire i vostri suggerimenti (specie i moduli) per
limitare il lampeggio a 5 secondi di durata.

Franco
Pablitomf
2004-07-06 09:18:28 UTC
Franco ha scritto:

[CUT]
Vediamo un pò...
Post by Franco
If --- un certo campo non è vuoto ---- then
me.etichetta.visible = true
Me.TimerInterval = 1000 'Visto che lo usi anche sull'evento Timer lo
stesso fallo partire da quà
Post by Franco
me.corpo.backcolor = 845143 i mposta il colore a giallo
else
me.etichetta.visible= false
Me.TimerInterval = 0 'Chiudi l'evento Timer.
Post by Franco
me.corpo.backcolor = -2147483633 imposta il colore a grigio (default)
end if
Sull'evento timer della Form il seguente codice
if me.etichetta.visible = true then
Questa prima riga non serve più visto che l'abbiamo spostata sull'evento
corrente, quindi la cancelliamo...
Inseriamo una variabile contatore per controllare il numero dei "lampeggi"
(ipotizziamo 5)

Dim cont As Integer ' dichiariamo la variabile come numero intero
cont = 0 ' la poniamo = a 0

Poi poniamo in essere un evento GIRO per ripetere le operazioni
Post by Franco
if me.corpo.backcolor= giallo then
me.corpo.backcolor = grigio
cont = cont + 1 'incrementiamo il contatore sull'evento accaduto
Post by Franco
else
me.corpo.backcolor = giallo
cont = cont + 1 'incrementiamo il contatore sull'evento accaduto
Post by Franco
end if
If cont < 5 then 'controlliamo quanti eventi "lampeggio" sono già stati
eseguiti
goto GIRO 'ritorna al punto GIRO per ripetere le operazioni
Else
Me.TimerInterval = 0 'Chiudiamo l'evento Timer che si sarà fermato in
questo caso solo dopo che cont sarà > o = a 5 GIRI
End If


Questo prossimo End If lo cancelliamo perchè era a chiusura del controllo
IF cancellato nella prima riga
Post by Franco
end if
Fammi sapere
--
Pablitomf

Lentamente muore chi abbandona un progetto prima di iniziarlo, chi non fa
domande sugli argomenti che non conosce, chi non risponde quando gli
chiedono qualcosa che conosce. (P.Neruda)

questo articolo e` stato inviato via web dal servizio gratuito
http://www.newsland.it/news segnala gli abusi ad ***@newsland.it
Franco
2004-07-07 19:25:10 UTC
Post by Pablitomf
[CUT]
Vediamo un pò...
Post by Franco
If --- un certo campo non è vuoto ---- then
me.etichetta.visible = true
Me.TimerInterval = 1000 'Visto che lo usi anche sull'evento Timer lo
stesso fallo partire da quà
Post by Franco
me.corpo.backcolor = 845143 i mposta il colore a giallo
else
me.etichetta.visible= false
Me.TimerInterval = 0 'Chiudi l'evento Timer.
Post by Franco
me.corpo.backcolor = -2147483633 imposta il colore a grigio (default)
end if
Sull'evento timer della Form il seguente codice
if me.etichetta.visible = true then
Questa prima riga non serve più visto che l'abbiamo spostata sull'evento
corrente, quindi la cancelliamo...
Inseriamo una variabile contatore per controllare il numero dei "lampeggi"
(ipotizziamo 5)
Dim cont As Integer ' dichiariamo la variabile come numero intero
cont = 0 ' la poniamo = a 0
Poi poniamo in essere un evento GIRO per ripetere le operazioni
Post by Franco
if me.corpo.backcolor= giallo then
me.corpo.backcolor = grigio
cont = cont + 1 'incrementiamo il contatore sull'evento accaduto
Post by Franco
else
me.corpo.backcolor = giallo
cont = cont + 1 'incrementiamo il contatore sull'evento accaduto
Post by Franco
end if
If cont < 5 then 'controlliamo quanti eventi "lampeggio" sono già stati
eseguiti
goto GIRO 'ritorna al punto GIRO per ripetere le operazioni
Else
Me.TimerInterval = 0 'Chiudiamo l'evento Timer che si sarà fermato in
questo caso solo dopo che cont sarà > o = a 5 GIRI
End If
Questo prossimo End If lo cancelliamo perchè era a chiusura del controllo
IF cancellato nella prima riga
Post by Franco
end if
Fammi sapere
--
Pablitomf
Lentamente muore chi abbandona un progetto prima di iniziarlo, chi non fa
domande sugli argomenti che non conosce, chi non risponde quando gli
chiedono qualcosa che conosce. (P.Neruda)
questo articolo e` stato inviato via web dal servizio gratuito
Provata la tua soluzione succede questo:

Quando il predetto controllo (collegato ad un campo) non è vuoto lo sfondo
diventa giallo, come previsto dalle istruzioni messe su corrente, e qui va
bene,
solo che poi lampeggia solo una volta, cioè passa a sfondo di colore grigio
e li si blocca.

Franco
Pablitomf
2004-07-08 13:07:24 UTC
Post by Franco
Post by Pablitomf
[CUT]
Vediamo un pò...
Post by Franco
Dunque ricapitolando In corrente della Form ho inserito il seguente
If --- un certo campo non è vuoto ---- then
me.etichetta.visible = true
Me.TimerInterval = 1000 'Visto che lo usi anche sull'evento Timer lo
stesso fallo partire da quà
Sull'evento timer della Form il seguente codice
Dim cont As Integer ' dichiariamo la variabile come numero intero
cont = 0 ' la poniamo = a 0
if me.corpo.backcolor= giallo then
me.corpo.backcolor = grigio
cont = cont + 1
else
me.corpo.backcolor = giallo
cont = cont + 1
end if
If cont < 5 then
eseguiti
goto GIRO
Else
Me.TimerInterval = 0
End If
Quando il predetto controllo (collegato ad un campo) non è vuoto lo sfondo
diventa giallo, come previsto dalle istruzioni messe su corrente, e qui va
bene,
solo che poi lampeggia solo una volta, cioè passa a sfondo di colore grigio
e li si blocca.
Franco
[CUT]
Hai ragione...
Fa una cosa, aggiungi un campo d'appoggio e come valore predefinito lo
imposti x es. a 5 (numero lampeggi che vuoi ottenere)...
Ipotizzo che tu lo abbia chiamato XXX


If me.corpo.backcolor = grigio Then
me.corpo.backcolor = giallo
me.corpo.Requery
DoEvents
Me.XXX = Me.XXX - 1
DoEvents
Me.XXX.Requery
Else
me.corpo.backcolor = grigio
me.corpo.Requery
DoEvents
Me.XXX = Me.XXX - 1
DoEvents
Me.XXX.Requery
End If

If Me.XXX = 0 Then
Me.TimerInterval = 0
Else: End If

------
A me funziona...
Sull'evento corrente aggiungi anche la riga di codice Me.XXX = 5 (numero
lampeggi che vuoi ottenere), così parte ogni volta con lo stesso valore a
scalare.


Fammi sapere
--
Pablitomf

Lentamente muore chi abbandona un progetto prima di iniziarlo, chi non fa
domande sugli argomenti che non conosce, chi non risponde quando gli
chiedono qualcosa che conosce. (P.Neruda)

questo articolo e` stato inviato via web dal servizio gratuito
http://www.newsland.it/news segnala gli abusi ad ***@newsland.it
Franco
2004-07-09 17:35:26 UTC
Post by Pablitomf
Post by Franco
Post by Pablitomf
[CUT]
Vediamo un pò...
Post by Franco
Dunque ricapitolando In corrente della Form ho inserito il seguente
If --- un certo campo non è vuoto ---- then
me.etichetta.visible = true
Me.TimerInterval = 1000 'Visto che lo usi anche sull'evento Timer lo
stesso fallo partire da quà
Sull'evento timer della Form il seguente codice
Dim cont As Integer ' dichiariamo la variabile come numero intero
cont = 0 ' la poniamo = a 0
if me.corpo.backcolor= giallo then
me.corpo.backcolor = grigio
cont = cont + 1
else
me.corpo.backcolor = giallo
cont = cont + 1
end if
If cont < 5 then
eseguiti
goto GIRO
Else
Me.TimerInterval = 0
End If
Quando il predetto controllo (collegato ad un campo) non è vuoto lo sfondo
diventa giallo, come previsto dalle istruzioni messe su corrente, e qui va
bene,
solo che poi lampeggia solo una volta, cioè passa a sfondo di colore grigio
e li si blocca.
Franco
[CUT]
Hai ragione...
Fa una cosa, aggiungi un campo d'appoggio e come valore predefinito lo
imposti x es. a 5 (numero lampeggi che vuoi ottenere)...
Ipotizzo che tu lo abbia chiamato XXX
If me.corpo.backcolor = grigio Then
me.corpo.backcolor = giallo
me.corpo.Requery
DoEvents
Me.XXX = Me.XXX - 1
DoEvents
Me.XXX.Requery
Else
me.corpo.backcolor = grigio
me.corpo.Requery
DoEvents
Me.XXX = Me.XXX - 1
DoEvents
Me.XXX.Requery
End If
If Me.XXX = 0 Then
Me.TimerInterval = 0
Else: End If
------
A me funziona...
Sull'evento corrente aggiungi anche la riga di codice Me.XXX = 5 (numero
lampeggi che vuoi ottenere), così parte ogni volta con lo stesso valore a
scalare.
Fammi sapere
--
Pablitomf
Lentamente muore chi abbandona un progetto prima di iniziarlo, chi non fa
domande sugli argomenti che non conosce, chi non risponde quando gli
chiedono qualcosa che conosce. (P.Neruda)
questo articolo e` stato inviato via web dal servizio gratuito
Funziona alla grande.
Unica cosa ho tolto l'istruzione me.corpo.requery perchè appare il messaggio
di errore.
"Impossibile trovare il metodo o il membro dei dati"

Grazie infinite
Franco