Italian [RISOLTO] [B4X] Drag and Drop

3uowiS

Active Member
Licensed User
Ciao a tutti, ho letto questo bellissimo thread di @Star-Dust su XUI DragView ma una volta aperto mi da una serie di errori come se mancasse la libreiria XUI che in realtà è selezionata.

Di seguito gli errori:
Main - 49: Variabile 'dd' non dichiarata, utilizzata prima che gli sia stato assegnato un valore.
Main - 48: Variabile 'dd' non dichiarata, utilizzata prima che gli sia stato assegnato un valore.
Main - 47: Variabile 'dd' non dichiarata, utilizzata prima che gli sia stato assegnato un valore.
Main - 25: Tipo sconosciuto: dragdropview<br />Manca un riferimento ad una libreria?
Libreria 'XUI' non utilizzata. (warning #32)

Sicuramente è una cavolata ma non riesco a capire quale sia il problema.

P.S: invece di spostare label è possibile spostare dei panel che hanno al loro interno più immagini?
 

Star-Dust

Expert
Licensed User
Vai vedere la parte del codice. Sembra che non hai copiato i file della libreria DragView..
Stai provando l'esempio allegato?

Non è possibile spostare i panel. Questa funzione la trovi nei panel della libreria SD_XuiView.
 

3uowiS

Active Member
Licensed User
Vai vedere la parte del codice. Sembra che non hai copiato i file della libreria DragView..
Stai provando l'esempio allegato?

Non è possibile spostare i panel. Questa funzione la trovi nei panel della libreria SD_XuiView.
Si, provavo l'esempio allegato, ho semplicemente scaricato "B4A Drag ViewSample1" e l'ho aperto. Ho visto adesso che c'è anche un file "SD XUI DragView 0.02".. 😅

Grazie, allora guardo di trovere info su SD_XuiView!
 

3uowiS

Active Member
Licensed User
@Star-Dust, non riesco a trovare niente riguardo spostare i panel.
Ho aggiunto nella libreria XUI Views, ma nel designer nel menu delle Custom view non trovo niente che abbia a che fare con il drop dei panel.
Ho guardato anche questo thread di Erel dove fa vedere le funzioni di XUI Views ma non ci sono...
Insomma, in pratica sono completamente al buio, quindi potresti illuminarmi con qualche info in più, perfavore? 😊
 

Star-Dust

Expert
Licensed User
B4XPanel
  • Events:
    • DoubleOrLongClick
    • Moved
    • OneClick
    • Resized
    • Touch (Action As Int, Coordinate() As Tp_Coordinate)
  • Fields:
    • Action_Click As Int
    • Action_DoubleClick As Int
    • Action_Down As Int
    • Action_Drag As Int
    • Action_LongClick As Int
    • Action_LoseTouch As Int
    • Action_Up As Int
    • AllSurfaceMove As Boolean
    • MinMoveAccept As Int
    • Movible As Boolean
    • Resizable As Boolean
    • Tag As Object
 

3uowiS

Active Member
Licensed User
Grazie mille! 🙏
Scusa l'ignoranza ma non ho mai aggiunto manualmente questi moduli (in realtà non so neppure se si chiamano così... 😅 ).
Come devo procedere? Devo copiarlo da qualche parte per utilizzarlo?
 

Star-Dust

Expert
Licensed User
Scarica la libreria SD_XUIView, Apri il file ZIP e i files che sono contenuti li trasferisci nella cartella Librerie Aggiuntive

Poi prova l'esempio che ti ho allegato.
 

Attachments

  • PanelMobile.zip
    10.2 KB · Views: 39

3uowiS

Active Member
Licensed User
@Star-Dust Ottimo! Grazie di nuovo! Vorrei sapere se è possibile farlo spostare in una posizioni predefinite come per le Label di SD_XuiView? E se si può fare in modo che si muova toccando in qualsiasi parte della superfice invece dell'angolo in alto (All'interno ho immagini e label, nessuna edit text che immagino sia il motivo per cui si sposta dall'angolo)?
 

Star-Dust

Expert
Licensed User
Leggi le proprietà e hai tutte le risposte alle tue domande

  • AllSurfaceMove As Boolean
 

3uowiS

Active Member
Licensed User
@Star-Dust non riesco a capire come impostare i posti dove devono agganciarsi i panel per creare un effetto simile a questo:

1620659637996.png


Puoi aiutarmi?
Spero di si visto che sei tu il genio che ha creato questa libreria. ;)
 
Last edited:

3uowiS

Active Member
Licensed User
Leggi le proprietà e hai tutte le risposte alle tue domande
Queste sono tutte le proprietà:


  • B4XPanel
    • Events:
      • DoubleOrLongClick
      • Moved
      • OneClick
      • Resized
      • Touch (Action As Int, Coordinate() As Tp_Coordinate)
    • Fields:
      • Action_Click As Int
      • Action_DoubleClick As Int
      • Action_Down As Int
      • Action_Drag As Int
      • Action_LongClick As Int
      • Action_LoseTouch As Int
      • Action_Up As Int
      • AllSurfaceMove As Boolean
      • MinMoveAccept As Int
      • Movible As Boolean
      • Resizable As Boolean
      • Tag As Object
    • Functions:
      • AddToParent (PanelToAdd As B4XView, Left As Int, Top As Int, Width As Int, Height As Int) As String
      • AddView (View As B4XView, Left As Int, Top As Int, Width As Int, Height As Int) As String
      • B4XObject As B4XView
      • BringToFront As String
      • Class_Globals As String
      • DesignerCreateView (Base As Object, Lbl As Label, Props As Map) As String
        Base type must be Object
      • EmbedView (View As B4XView) As String
      • GetAllViewsRecursive As List
      • GetBase As Panel
      • GetView (Index As Int) As B4XView
      • Initialize (Callback As Object, EventName As String) As String
      • IsInitialized As Boolean
        Verifica se l'oggetto sia stato inizializzato.
      • NativeObject As Panel
      • RemoveAllViews As String
      • RemoveViewFromParent As String
      • RequestFocus As String
      • ReSetEvent (Callback As Object, EventName As String) As String
      • Rotate (AngleX As Float, AngleY As Float, AngleZ As Float) As String
      • SendToBack As String
      • Snapshot As B4XView
    • Properties:
      • Enable As Boolean
      • Height As Int
      • Left As Int
      • Top As Int
      • Visible As Boolean
      • Width As Int
 
Last edited:

3uowiS

Active Member
Licensed User
Niente, ci ho provato tutto il pomeriggio, ne ho provate diverse ma non riesco a capire quale sia quella da usare. Per favore @Star-Dust puoi dirmi se comunque si può fare?
Grazie in anticipo. 🙏
 

Star-Dust

Expert
Licensed User
Stai facendo una gran confusione.
La libreria XUI_DrapDrop ti permette di spostare delle viste su pannelli predefiniti, ovvero dei posti (PLACE).
Indichi quali sono le viste spostabili con il comando AddDragView e indichi i posti con il comando AddPlaceView

Tutto questo non ha nulla a che vedere con la SD_XUIView.

La libreria SD_XUIView permette di attivar ela funziona Mobibile e trascinare i pannelli dove si vuole. Sia toccando l'angolo in alto oppure abilitando l'intera superficie per effettuare lo spostamento. Inoltre permette anche di ridimensionare il Pannello.
Non ha la funzione che gli permette di agganciarsi in un posto (PLACE) specifico. E' un movimento libero.

Il comando Embed serve solo ad acquisire le viste che si trovano sopra il pannello. Ha la stessa funzione di LoadLayout, ma acquisisce al sui interno solo le viste che già sono visibili e posizionate nell'area sovrastante al pannello.

La funzione che cerchi con i posti assegnati lo hai solo con la libreria XUI_DragDrop.
 

3uowiS

Active Member
Licensed User
Stai facendo una gran confusione.
La libreria XUI_DrapDrop ti permette di spostare delle viste su pannelli predefiniti, ovvero dei posti (PLACE).
Indichi quali sono le viste spostabili con il comando AddDragView e indichi i posti con il comando AddPlaceView

Tutto questo non ha nulla a che vedere con la SD_XUIView.

La libreria SD_XUIView permette di attivar ela funziona Mobibile e trascinare i pannelli dove si vuole. Sia toccando l'angolo in alto oppure abilitando l'intera superficie per effettuare lo spostamento. Inoltre permette anche di ridimensionare il Pannello.
Non ha la funzione che gli permette di agganciarsi in un posto (PLACE) specifico. E' un movimento libero.

Il comando Embed serve solo ad acquisire le viste che si trovano sopra il pannello. Ha la stessa funzione di LoadLayout, ma acquisisce al sui interno solo le viste che già sono visibili e posizionate nell'area sovrastante al pannello.

La funzione che cerchi con i posti assegnati lo hai solo con la libreria XUI_DragDrop.

Si si, lo so che quella è una caratteristica di XUI DragDrop, ma avevo chiesto se si poteva fare lo stesso con i panel mi avevi detto
Questa funzione la trovi nei panel della libreria SD_XuiView.
quindi avevo capito che era possibile fare la stessa cosa degli agganci in posizioni prestabilite anche con i panel, ma evidentemente te intendevi solo lo spostamento.
Ma se non è possibile spostare i panel in posizioni prestabilite devo per forza usare XUI_DragDrop perché spostarli in posti casuali non mi serve; il problema è che il giocatore da spostare è composto da un immagine della maglia (che in questo caso posso caricare su una label, + una label per il nome e una per il numero (che cambiano in base al giocatore), + una label che conterrà i punteggi.
Io di conseguenza avrei l'esigenza di spostare tutto insieme come in un unico blocco, è possibile quindi spostare più label sovrapposte in un colpo solo con XUI_DragDrop?
 
Last edited:

3uowiS

Active Member
Licensed User
@Star-Dust Nel caso non si possa, ho pensato ad un piano B, si può fare il drag and drop in una custom list view?
Intendo ad esempio in una lista di 13 voci, spostare la voce 7 al numero 2, che automaticamente fa scalare la 2 alla 3 e così via tutte le altre...
 

Star-Dust

Expert
Licensed User
Si si, lo so che quella è una caratteristica di XUI DragDrop, ma avevo chiesto se si poteva fare lo stesso con i panel mi avevi detto quindi avevo capito che era possibile fare la stessa cosa degli agganci in posizioni prestabilite anche con i panel, ma evidentemente te intendevi solo lo spostamento.
Si può fare con il Panel ma devi scrivere tu il codice per avere l'effetto "CALAMITA" sul place. Non c'è un modo automatico nella libreria SD_XUIView ma puoi scrivertelo.

è possibile quindi spostare più label sovrapposte in un colpo solo con XUI_DragDrop?
No

Nel caso non si possa, ho pensato ad un piano B, si può fare i drag and drop in una custom list view?
Intendo in una lista di 13 voci, spostare ad esempio la voce 7 al numero 2, che automaticamente fa scalare la 2 alla 3 e così via tutte le altre..
Se ho capito bene, vuoi una ListView con gli item movibili. Questo è disponibile solo in B4A

Ma se non ricordo male qualcosa lo aveva creato anche erel per B4X, ma devi cercartelo
 

Star-Dust

Expert
Licensed User
Un ultima cosa non so se SD_DragDrop funzioni o meno con i Panel. Non ho provato, magari sei fortunato e funziona
 
Last edited:

3uowiS

Active Member
Licensed User
Si può fare con il Panel ma devi scrivere tu il codice per avere l'effetto "CALAMITA" sul place. Non c'è un modo automatico nella libreria SD_XUIView ma puoi scrivertelo.
In che linguaggio dovrei scriverlo? Tu pensi che potrei essere in grado? Non è una cosa troppo complessa per un principiante come me?

Comunque cercherò se trovo qualcosa per B4X in modo da essere coerente con il resto del progetto, altrimenti poi per Ios poi non posso usarlo.
Grazie delle risposte! 🙏
 

Star-Dust

Expert
Licensed User
Io ho scritto tutto in b4x non c'è nemmeno un rigo in un trio linguaggio. Non è complicato
 
Top