Buonasera a tutti
sono nuovo del forum e nuovo di questo linguaggio di programmazione
ho bisogno di un piccolo aiuto, sto creando una web app e ho bisogno di fare la somma di ogni click
su visual basic 6.0 io creavo un button con dentro:
dim contaclick as integer
contaclick = contaclick + 1
label1.caption = Cstr(contaclick)
qui non riesco ha riprodurlo, se potete aiutarmi
saluti e buona serata
Ciao,
utilizzando gli eventi mouse down e mouse up dovresti risolvere.
Niente da fare
funziona alla stessa maniera
crea una propriet della finestra conta as integer
crea un bottone e una label
nella action del button
conta = conta + 1
label1.text = str(conta)
non so se quello che cerchi.
Ciao
Toni
il suggerimento di Toni corretto: devi creare una propriet della finestra che mantiene il conteggio
In linea teorica il pi stretto equivalente a quanto hai scritto originariamente (sempre nell’action di un bottone) non usare
dim contaclick as integer
ma
static contaclick as integer
dim crea una variabile locale per cui il valore si perde dopo l’esecuzione del codice
static crea un variabile locale che viene mantenuta ma in una web app potrebbe avere effetti collaterali non desiderati (ma non sapendo i tuoi desideri magari quello che cerchi)
L’effetto collaterale che questa variabile comune a tutte le istanze del bottone (vale a dire i diversi utenti vedranno la somma dei click globali di tutti gli utenti e non i loro, ma non sapendo cosa vuoi fare, magari quello che vuoi ottenere.
Grazie a tutti ci sono riuscito
un ultima domanda , i click ottenuti vorrei salvarli in file di testo
Guarda la parte FolderItem e TextOutputStream del manuale.
non trovo nulla nel manuale
Credo che Toni intendesse guarda l’Help riguardo gli argomenti FolderItem e TextOutputStream
Comunque facciamo l’esempio in cui hai il contatore in una variabile: conteggio as integer
Per salvarlo su file (usiamo come esempio un file di testo in modo da avere il file leggibile) puoi usare il metodo:
[code]Sub ScriviConteggioText(n as Int32)
dim f as FolderItem
//Indico dove voglio trovare il file
f=SpecialFolder.Desktop.Child(“conteggioText.txt”)
dim t as TextOutputStream
//Posso fare tutta una serie di verifiche ma per semplificare vedo semplicemente se riesco a creare il file
try
t=TextOutputStream.Create(f)
Catch
t=nil
end try
//Se ho creato il file, ovvero non ho avuto eccezioni salvo il dato in modo testuale
if t<>nil then
t.Write str(n)
end if
End Sub[/code]
Per leggere usi l’analoga funzione:
[code]Function LeggiConteggioText() As Int32
dim f as FolderItem
//Indico dove si trova il file
f=SpecialFolder.Desktop.Child(“conteggioText.txt”)
dim t as TextInputStream
//Provo ad aprirlo, ad esempio la prima volta il file non esiste e sar sollevata l’eccezione che viene per gestita
try
t=TextInputStream.Open(f)
Catch
t=nil
end try
if t<>nil then
//Leggo il valore testuale
Return val(t.ReadAll)
end if
End Function[/code]
In alternativa puoi fare un file binario che non leggibile aprendolo ma pi proprio per salvare un numero:
[code]Sub ScriviConteggio(n as Int32)
dim f as FolderItem
f=SpecialFolder.Desktop.Child(“conteggio.txt”)
dim t as BinaryStream
try
t=BinaryStream.Create(f,True)
Catch
t=nil
end try
if t<>nil then
t.WriteInt32 n
end if
End Sub[/code]
e
[code] dim f as FolderItem
f=SpecialFolder.Desktop.Child(“conteggio.txt”)
dim t as BinaryStream
try
t=BinaryStream.Open(f)
Catch
t=nil
end try
if t<>nil and t.Length>0 then
Return t.ReadInt32
end if[/code]