Newsgroup: it.comp.lang.visual-basic
Titolo: Gestione eventi

In un form voglio mettere un pulsante Avvia che inizia la generazione
di numeri casuali a intervalli di un secondo, e un pulsante Stop che la
interrompe.
Nel codice del form vorrei fare una cosa come segue:
Public Class Generatore
 Inherits System.Windows.Forms.Form
 Private Sub Avvia_Click(ByVal sender As System.Object, _
 ByVal e As System.EventArgs) Handles Avvia.Click
    ...
    Randomize()
    "FINCHE' BUTTONSTOP NON E' CLICCATO"
         Numero = CInt(Int((9999999 * Rnd()) + 1))
         VISUALIZZA IL NUMERO IN UNA FINESTRA
         Sleep(1000)
    ...
 End Sub
 Private Sub ButtonStop_Click(ByVal sender As System.Object, -
 ByVal e As System.EventArgs) Handles ButtonStop.Click
    ...
 End Sub
3 problemi:
1) come posso fare interagire le due procedure Avvia e Stop in modo che
al click su ButtonStop la generazione di numeri si interrompa?
2) come posso mostrare il numero in una messagebox senza doverci
cliccare per chiuderla?
3) la sleep non viene riconosciuta
grazie mille per l'aiuto
N! Xau
http://ilovemiliofede.altervista.org


.NET? Non lo conosco, quindi ri do soltanto qualche consiglio generale.
1) Metti un controllo Timer nel form. Avvia lo abilita, Stop lo disabilita
(Tmr1.Enabled = False). Se vuoi che a un altro click su Avvia i numeri
ripartano da dove erano rimasti, devi inserire l'ultimo numero in una
variabile a livello di modulo.
2) Non mostrare il numero in una MsgBox. Puoi usare una label sul form, o un
altro form che Mostri/Nascondi. Usando la MsgBox, cosa succederebbe se
l'utente cliccasse dopo un secondo e mezzo?
3) a cosa ti serve la Sleep? Ad aspettare un secondo? Ma c'č la proprietą
Interval del timer.
Spero di esserti stato di aiuto. Ciao
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 Spero di esserti stato di aiuto. Ciao
Di grande aiuto.
Non ho capito l'osservazione al punto 1): se riclicco su Avvia dopo uno
Stop, mi pare che vada tutto bene, o sbaglio?
Come hai detto tu, ho messo l'output in una label sul form.
Esiste un controllo che mi permette di visualizzare gli ultimi N numeri
generati, con uno scrolling verso l'alto?
grazie, ciao
N! Xau
http://ilovemiliofede.altervista.org

 generati, con uno scrolling verso l'alto?
Una listbox.
Ciao
--
Reporting tool: 
http://www.neodatatype.net
Qualunque mentecatto può scrivere codice che un computer possa capire.
I buoni programmatori scrivono codice che gli uomini possano capire.
[Martin Fowler]

 eh???
tu hai detto:
"Se vuoi che a un altro click su Avvia i numeri ripartano da dove erano
rimasti, devi inserire l'ultimo numero in una variabile a livello di
modulo."
Il programma fa proprio questo. Che intendi per "da dove erano
rimasti"?  
ciao


No, lo avevo detto io.
Dunque:
btnAvvia_Click (Tmr1.Enabled)
1, 2, 3, 4, 5........
...327, 328, 329, 330, ...
...1422. 1423, 1424, 1425, btnStop_Click! (Tmr1.Enabled = False)
... pissi pissi bao bao blah blah passano cinque minuti blah blah...
btnAvvia_Click (Tmr1.Re-enabled)
1426, 1427, 1428, 1429, 1430, 1431....
("....oh, cavolo, ma è ripartito da 1426, chissà come avrà fatto...")
("...sicuramente aveva salvato il numero raggiunto in una variabile a
livello di modulo..")
("...ah, già, altrimenti sarebbe ripartito da 1...")
Capito ora? Vuoi che ripartano da dove sono rimasti, o che ripartano da uno?
A seconda di quello che vuoi, salvi il numero raggiunto oppure no.
Ciao.


 1426, 1427, 1428, 1429, 1430, 1431
Ma il mio programma genera numeri *casuali*.
ciao
N! Xau
keep in mind the power of ANTANI
http://ilovemiliofede.altervista.org

 Ma il mio programma genera numeri *casuali*.
è vero, lo avevi scritto ma mi era sfuggito. Vabbè, allora ignora tutta la
parte della variabile a livello di modulo. Ciao.
