Italian Chiacchiericci

LucaMs

Expert
Licensed User
Longtime User
Ti sbagli, gli altri eventi legati al touch non funzioneranno come ad esempio il click e Longclick, sostituisce la Sub degli eventi

Ti dico che non lo crea perché già viene creato quando lo inizializzi quindi Basterebbe che tu aggiungi una sub NomeVista.Touch e già l'evento sollevato ti chiama la sub
.
C'è un mare di eventi possibili; alcuni saranno incompatibili.

Comunque non mi hai ancora detto quale sia l'evento che devi creare.
 

Star-Dust

Expert
Licensed User
Longtime User
Ti sbagli anche per b4j.
L'evento creato come nelle specifiche di Java è Node_Event

In un posto troverai anche un link che specifica Come gestire gli eventi virgola proprio il posto cui facevi riferimento tu

L'unico mio errore che non esiste l'evento Listener come in android
Giustamente mi hanno fatto notare che gli eventi sollevate nelle viste in Java sono a altri e legati al mouse
 

Star-Dust

Expert
Licensed User
Longtime User
Comunque non ti voglio spiegare troppi segreti:p
 

Star-Dust

Expert
Licensed User
Longtime User
C'è un mare di eventi possibili; alcuni saranno incompatibili.

Comunque non mi hai ancora detto quale sia l'evento che devi creare.
Credo sia il MouseDragged
 

Star-Dust

Expert
Licensed User
Longtime User
Comunque l'esempio di Erel che c'è sull'help di b4j è sbagliato
 

Star-Dust

Expert
Licensed User
Longtime User
Questa non l'ho capita ma non mi va di discuterne
Ti spiego, questo codice che mi é stato suggerito:
B4X:
Dim jo As JavaObject = View
    Dim e As Object = jo.CreateEvent("javafx.event.EventHandler", "ViewJ", False)
    jo.RunMethod("setOnTouchMoved", Array(e)) 'change the event to fit your purpose
Solleva ViewJ_Event() e non ViewJ_OnTouchMoved(). Quindi è corretto
Quello che mi mancano sono i parametri che Credevo cosi ViewJ_(EventData As MouseEvent) ma in realtà me lo solelva ma mi da errori di parametri
ergo sono già sufficientemente nervoso.
Anche io mi inservosisco se cercano di darmi consigli su argomenti che non conoscono neanche troppo bene e finisce che sono io a dovergli spiegare delle cose :p
Veramente sei tu che hai chiesto una mano
Si ma chiedevo a qualcuno esperto in B4J, so che sei bravissimissimo in B4A ma che usi poco B4J...
quindi chiedevo a @udg ma é andato con la moglie :D:D:D:D
 

LucaMs

Expert
Licensed User
Longtime User
Anche io mi inservosisco se cercano di darmi consigli su argomenti che non conoscono neanche troppo bene
Non mi intendo di B4j (se non per i server)
Ed a quel punto non t'ho dato consigli specifici, ma ti ho fatto notare l'errore già nella parte b4a, ti ho riportato il codice che ti hanno suggerito e dove cercare nome-evento e parametri.

Comunque, hai ragione, meglio che io dia suggerimenti sicuri.

Se poi non ne dò affatto, meglio ancora, risparmio tempo da usare meglio :)
 

Star-Dust

Expert
Licensed User
Longtime User
ti ho riportato il codice che ti hanno suggerito e dove cercare nome-evento e parametri.
Mi hanno suggerito questo:
B4X:
Dim jo As JavaObject = View
    Dim e As Object = jo.CreateEvent("javafx.event.EventHandler", "ViewJ", False)
    jo.RunMethod("setOnTouchMoved", Array(e)) 'change the event to fit your purpose
Che funziona, ma quello che manca e quali parametri passare al
B4X:
ViewJ_Event()
che viene sollevato correttamente, perché il codice é corretto , ma che da errore nei parametri

Comunque, hai ragione, meglio che io dia suggerimenti sicuri.
Se poi non ne dò affatto, meglio ancora, risparmio tempo da usare meglio :)
I tuoi suggerimento sono sempre utili, ma se rispondi senza leggere mi dai suggerimento che non mi servono, e io ti devo spiegare 10 volte la domanda prima che mi dai un suggerimento interessante. (e mi arrabbio nel frattempo)
Apprezzo i suggerimenti, ma LEGGI QUELLO CHE TI SCRIVO, cosi me li dai giusti al primo colpo senza dover perdere mezzora per spiegarti la domanda :p e tu risparmi tempo a non dare risposte che non mi servono ;)
 

udg

Expert
Licensed User
Longtime User
Prova con qualcosa tipo:
B4X:
Sub Button1_Click
   Dim jo As JavaObject = Label1
   Dim e As Object = jo.CreateEvent("javafx.event.EventHandler", "ViewJ", False)
   jo.RunMethod("setOnMouseDragged", Array(e)) 'change the event to fit your purpose
End Sub

Sub ViewJ_Event(MethodName As String, Args() As Object) As Object
   Dim e As MouseEvent = Args(0)
   Log($"X: ${e.x} - Y: ${e.x}"$)
   Label1.SetLayoutAnimated(0,e.X, e.Y, Label1.Width,Label1.Height)
   e.Consume
   Return True
End Sub

Nel Designer ho una label denominata Label1. L'idea è che su di essa si attivi un Event Handler (setOnMouseDragged) che richiami la ViewJ_Event.
Quest'ultima sa che l'evento è di tipo MouseEvent e di conseguenza ne gestisce le proprietà.
Non so se non convenga gestire un DragEnd piuttosto che l'intero movimento. Comunque vale per tutti gli eventi (es. MouseClicked).
 

Star-Dust

Expert
Licensed User
Longtime User
Prova con qualcosa tipo:
B4X:
Sub Button1_Click
   Dim jo As JavaObject = Label1
   Dim e As Object = jo.CreateEvent("javafx.event.EventHandler", "ViewJ", False)
   jo.RunMethod("setOnMouseDragged", Array(e)) 'change the event to fit your purpose
End Sub

Sub ViewJ_Event(MethodName As String, Args() As Object) As Object
   Dim e As MouseEvent = Args(0)
   Log($"X: ${e.x} - Y: ${e.x}"$)
   Label1.SetLayoutAnimated(0,e.X, e.Y, Label1.Width,Label1.Height)
   e.Consume
   Return True
End Sub

Nel Designer ho una label denominata Label1. L'idea è che su di essa si attivi un Event Handler (setOnMouseDragged) che richiami la ViewJ_Event.
Quest'ultima sa che l'evento è di tipo MouseEvent e di conseguenza ne gestisce le proprietà.
Non so se non convenga gestire un DragEnd piuttosto che l'intero movimento. Comunque vale per tutti gli eventi (es. MouseClicked).
Grazie funziona. A me serve solo MouseDragged per quello che devo fare io.
 

Star-Dust

Expert
Licensed User
Longtime User
Prova con qualcosa tipo:
B4X:
Sub Button1_Click
   Dim jo As JavaObject = Label1
   Dim e As Object = jo.CreateEvent("javafx.event.EventHandler", "ViewJ", False)
   jo.RunMethod("setOnMouseDragged", Array(e)) 'change the event to fit your purpose
End Sub

Sub ViewJ_Event(MethodName As String, Args() As Object) As Object
   Dim e As MouseEvent = Args(0)
   Log($"X: ${e.x} - Y: ${e.x}"$)
   Label1.SetLayoutAnimated(0,e.X, e.Y, Label1.Width,Label1.Height)
   e.Consume
   Return True
End Sub

Nel Designer ho una label denominata Label1. L'idea è che su di essa si attivi un Event Handler (setOnMouseDragged) che richiami la ViewJ_Event.
Quest'ultima sa che l'evento è di tipo MouseEvent e di conseguenza ne gestisce le proprietà.
Non so se non convenga gestire un DragEnd piuttosto che l'intero movimento. Comunque vale per tutti gli eventi (es. MouseClicked).
Ti direi "i love you" come dice @Matteo Granatiero , ma so che non gradiresti :D:D:D
Un grazie basterà ...;)
 

udg

Expert
Licensed User
Longtime User
Di sicuro. L'importante è aver risolto..e che la mia passeggiata sia finita..eheh
ps: mi piace molto il tuo nuovo avatar
 

Star-Dust

Expert
Licensed User
Longtime User
Sto trasformando una mia libreria B4A in XUI.. sperem...
 

udg

Expert
Licensed User
Longtime User
Come primo esercizio XUI io ho "portato" il ToastMessageShow in B4J..sembrava funzionare..forse dovrei riprenderlo e completarlo.
Ma anche un po' di ozio non fa male..
 

LucaMs

Expert
Licensed User
Longtime User
@udg, ho dato solo un'occhiata al volo al tuo thread circa il nuovo metodo di pagamento (se riuscirò a ricordarlo, lo leggerò meglio prossimamente).

Altra cosa che, tecnicamente, dovremmo tenere d'occhio è un qualcosa che ho visto in TV solo con la coda dell'occhio (TV acceso solo per sentire rumore :D).
Pare qualcosa di veramente innovativo, legato al 5G: la possibilità di creare un proprio "provider", custom.
Non ne so di più.

[Sono tante le cose di cui vorrei interessarmi, che vorrei approfondire, ma i 2 neuroni ed i 2kb di ram cerebrale, non me lo consentono. Inoltre, devo sbrigarmi a completare st'app veramente inutile e finalmente prendere decisioni per Penny - Perché sto scrivendo 'sta roba? Boh, oramai l'ho scritta :p]
 
Top