Italian Canvas (o panel) scrollabile

Aldo's

Active Member
Licensed User
Buongiorno a tuttti.
Utilizzo un canvas dentro un panel.
Ciò che io disegno (in questo caso con la DrawText) esce dalle porzioni del canvas.
Avrei la necessità di farlo scrollare con una barra orizzontale ed una verticale.
Come si può fare?
 

Aldo's

Active Member
Licensed User
I try immediatly
Thanks
 

Aldo's

Active Member
Licensed User
Does not work
An error say:
java.lang.ClassCastException: javafx.scene.control.ScrollPane cannot be cast to javafx.scene.layout.Pane
 

Star-Dust

Expert
Licensed User
Does not work
An error say:
java.lang.ClassCastException: javafx.scene.control.ScrollPane cannot be cast to javafx.scene.layout.Pane
In B4J Canvas è una vista a se. La devi aggiungere nel pannello con AddNode

All'interno di scrollpane c'è un panel , ma scrollpane non è un panel
 

Aldo's

Active Member
Licensed User
I try immediatly ...
... scusa ...
provo subito
 

Star-Dust

Expert
Licensed User
Inoltre ScrollPane lo aggiungi da codice e non da design devi inizializzare il pannello e assegnarlo al nodo
 

Aldo's

Active Member
Licensed User
Ok sono riuscito ufficialmente ad incasinarmi
Io subito avevo messo un Pane in Designer poi avevo dichiarato il B4XCanvas e fatto .Inizialize(Pane)
Tutto funzionava ma con un pannello non scrollabile.

Se vado a definire il canvas in Designer me lo dichiara come Canvas e non come B4XCanvas
Da codice come faccio un AddNode per dire che B4XCanvas è nodo-figlio di ScrollPane?
 

Star-Dust

Expert
Licensed User
Metti un ScrollPane nel design e fai prima. Non devi inizializzarlo ovviamente.

Poi dichiari un Canvas e lo attacchi nel pane dentro lo scrollPane
 

Aldo's

Active Member
Licensed User
Fatto, ma mi da quell'errore di prima quando provo ad inizializzare il b4xcanvas
 

Star-Dust

Expert
Licensed User
Fatto, ma mi da quell'errore di prima quando provo ad inizializzare il b4xcanvas
Stai usando B4xCanvas?...il discorso è diverso.
Devi essere preciso quando descrivi le cose
 

Star-Dust

Expert
Licensed User
B4XCanvas lo devi inizializzare puntando al pannello dentro il nodo di scrollPane.

Adesso sono fuori non posso farti un esempio
 

Aldo's

Active Member
Licensed User
Scusa, pensavo di avere descritto la situazione...
...probabilmente "mi spezzo ma non mi spiego"
 

Star-Dust

Expert
Licensed User
Scusa, pensavo di avere descritto la situazione...
...probabilmente "mi spezzo ma non mi spiego"
Canvas e B4XCanvas sono diversi.

Infatti ho scritto che Canvas per B4J è diverso.
B4Xcancas invece è uguale per tutte le piattaforme
 

Aldo's

Active Member
Licensed User
Io ho scritto:
B4XCanvas.Initialize(ScrollPane)
e questo mi da errore.
Come posso inizializzare puntando al pannello dentro il nodo di scrollPane?
 

Star-Dust

Expert
Licensed User
Io ho scritto:
B4XCanvas.Initialize(ScrollPane)
e questo mi da errore.
Come posso inizializzare puntando al pannello dentro il nodo di scrollPane?
Certo che da errore.
B4X:
Dim P as Pane = ScrollPane.InnerNode
B4XCanvas.Initialixe(P)
 

Aldo's

Active Member
Licensed User
Non mi riconosce come elemento valido .InnerNode
 

Aldo's

Active Member
Licensed User
Non mi riconosce come elemento valido .InnerNode
Scusa non è vero... ho capito cosa sbagliavo.
Però mi da questo errore:
java.lang.RuntimeException: Object should first be initialized (Node).
alla riga che mi hai detto di scrivere
 

Star-Dust

Expert
Licensed User
B4X:
Dim P as Pane = ScrollPane.InnerNode
P.initialize("")
B4XCanvas.Initialixe(P)
 

Aldo's

Active Member
Licensed User
Continua a darmi l'errore
java.lang.RuntimeException: Object should first be initialized (Node).
alla riga
Dim P as Pane = ScrollPane.InnerNode
 
Top