somma dei click

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 :slight_smile: ci sono riuscito :slight_smile:
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]