Italian Aggiungendo un Button gli eventi Up Down non sono visibili nel designer perché?

SimonAndroid

Active Member
Licensed User
Longtime User
Buonasera, mi sono accorto solo stasera che oltre all'evento click e long_click sui bottone esistono anche Up e Down, la cosa molto strana e che non riesco a capire... anche facendo un nuovo progetto durante l'uso del Designer se aggiungo un Button generando i membri si visualizza solo Click e Long_Click, perciò non potevo conoscere UP e DOWN, perfino durante l'aiuto nell'editor scrivendo button m compare solo click e long_click come eventi, da cosa dipende dall'installazione dalla configurazione? Qualcuno sa darmi notizie in merito.
allego due foto esplicative.
1614535972167.png


1614536005902.png
 

Star-Dust

Expert
Licensed User
Longtime User
Sono deprecati e potrebbero non funzionare su tutti i dispositivi o non funzionare nella stessa maniera. Usando l'evento Touch è più sicuro per intercettare Up e Down

B4X:
Sub View_Touch (Action As Int, X As Float, Y As Float)
Select Action
        Case Activity.ACTION_DOWN
          '_down

        Case Activity.ACTION_UP
          '_up

        Case Activity.ACTION_MOVE
       
    End Select

End Sub
 
Last edited:

SimonAndroid

Active Member
Licensed User
Longtime User
Scusa Star-Dust la curiosità, vorrei mettere due bottoni con + e - che se vengono mantenuti premuti dovrebbero aumentare o diminuire un contatore io l'ho realizzato con un timer.. esiste un altro modo perché come faccio a capire quale bottone viene premuto se la sub View_Touch non posso passare l'oggetto.. (bottone1 o bottone 2..) forse non ho capito qualcosa. Potresti farmi un esempio con due bottoni messi in un pannello?
 

LucaMs

Expert
Licensed User
Longtime User
Scusa Star-Dust la curiosità, vorrei mettere due bottoni con + e - che se vengono mantenuti premuti dovrebbero aumentare o diminuire un contatore io l'ho realizzato con un timer.. esiste un altro modo perché come faccio a capire quale bottone viene premuto se la sub View_Touch non posso passare l'oggetto.. (bottone1 o bottone 2..) forse non ho capito qualcosa. Potresti farmi un esempio con due bottoni messi in un pannello?
L'evento riceve l'oggetto Sender:
If Sender = TuoButton1 Then
Else
' è l'altro
End If

Chiaramente il nome evento dev'essere lo stesso per entrambi i Button.


OPS... Button non hanno l'evento Touch. Usa due ImageView.
 
D

Deleted member 103

Guest
Potresti farmi un esempio con due bottoni messi in un pannello?
Invece di usare due bottoni, usa due panel.
In questo modo dovrebbe funzionare senza Timer.

dim lasttime as long

B4X:
Sub View_Touch (Action As Int, X As Float, Y As Float)
dim pnl as panel = sender
Select Action
        Case Activity.ACTION_DOWN
          '_down
          if datetime.new > lasttime + 100 then
                    if pnl.tag = "+" then
                              count = count + 1
                    else
                              count = count + 1
                    end if
          end if
          lasttime = datetime.new
        Case Activity.ACTION_UP
          '_up
        Case Activity.ACTION_MOVE
      
    End Select

End Sub
 

Star-Dust

Expert
Licensed User
Longtime User
Comunque ci sono viste che già lo fanno.

oppure B4XPlusMinus in Xui Views
 

Star-Dust

Expert
Licensed User
Longtime User
No, non c'è in imageView. Infatti ti hanno detto di usare Panel.
 

LucaMs

Expert
Licensed User
Longtime User
Anche ImageView non presenta l'evento Touch o la mia versione ha qualche problema?

View attachment 108870
È grazie a questo che mi sono accorto di aver pubblicato la versione sbagliata di lmB4XImageView, con un bug, perché volevo aggiungere proprio l'evento Touch.

Ho allegato la versione senza bug ma x Il Touch... c'è Roma - Milan, quindi più tardi 😊
 

SimonAndroid

Active Member
Licensed User
Longtime User
Però alla fine mi sfugge ancora qualcosa, io vorrei avere l'effetto di un bottone che posso premere o tenerlo premuto perciò una sorta di evento click e long click con la grafica e il resto... con due pannelli non capisco il pannello è un contenitore perciò se ci metto due bottoni siamo alle solite, visto che i bottoni sono già in un pannello.. devo dire che non mi è chiaro per niente..
 
D

Deleted member 103

Guest
Però alla fine mi sfugge ancora qualcosa, io vorrei avere l'effetto di un bottone che posso premere o tenerlo premuto perciò una sorta di evento click e long click con la grafica e il resto... con due pannelli non capisco il pannello è un contenitore perciò se ci metto due bottoni siamo alle solite, visto che i bottoni sono già in un pannello.. devo dire che non mi è chiaro per niente..
Invece di usare due bottoni, usa due panel.
In questo modo dovrebbe funzionare senza Timer.
 

LucaMs

Expert
Licensed User
Longtime User
ok, grazie mille poi attenderò quello con evento touch..
Molto strano. Per il momento ho aggiunto l'evento Touch per B4A e B4J, in quanto non ho B4i e devo prima informarmi.
Quello che è strano è che in B4J scatta... quando il puntatore del mouse passa sull'immagine, senza premere il tasto. Eppure è l'evento Touch del Pane.
Lo lascio? Boh.

P.S. Eh, sì, in B4J funziona proprio così, ergo ce lo lascio.
 
Top