Italian B4J - COME USARE DESIGNER

ivanomonti

Expert
Licensed User
Longtime User
Da oggi vorrei usare design di b4x e creare un possibile passo passo per creare piccole interfacie utente

1) menubar
2) scrollpane
3) footer

all'interno del scrollpane verrà inserito il pannello a piacere, ogni pannello è un piccolo mondo a sè,,, come succede nei siti web

B4X:
Sub AppStart (Form1 As Form, Args() As String)
    
    MainForm = Form1
    MainForm.Stylesheets.Add(File.GetUri(File.DirAssets,"css-33.css"))
    MainForm.Title="Lavagna v 1.0.0.1"
    MainForm.RootPane.LoadLayout("layout1") 'Load the layout file.
    MainForm.Show
    
    mBase = xui.CreatePanel("mBase")
    mBase.Color = xui.Color_ARGB(255,150,50,50)
    mBase.Width=3000
    mBase.Height=2000
    mScrollPane.InnerNode = mBase
    
    Dim mButton As Button
    mButton.Initialize("mButton")
    mButton.Text= "test"
    mBase.AddView(mButton,100,100,100,30)

End Sub

2020-05-02_114237.jpg
 

Star-Dust

Expert
Licensed User
Longtime User
Da oggi vorrei usare design di b4x e creare un possibile passo passo per creare piccole interfacie utente

1) menubar
2) scrollpane
3) footer

all'interno del scrollpane verrà inserito il pannello a piacere, ogni pannello è un piccolo mondo a sè,,, come succede nei siti web

B4X:
Sub AppStart (Form1 As Form, Args() As String)
   
    MainForm = Form1
    MainForm.Stylesheets.Add(File.GetUri(File.DirAssets,"css-33.css"))
    MainForm.Title="Lavagna v 1.0.0.1"
    MainForm.RootPane.LoadLayout("layout1") 'Load the layout file.
    MainForm.Show
   
    mBase = xui.CreatePanel("mBase")
    mBase.Color = xui.Color_ARGB(255,150,50,50)
    mBase.Width=3000
    mBase.Height=2000
    mScrollPane.InnerNode = mBase
   
    Dim mButton As Button
    mButton.Initialize("mButton")
    mButton.Text= "test"
    mBase.AddView(mButton,100,100,100,30)

End Sub

View attachment 93063
Se è per B4X devi cambiare vista, ScrollPane è solo per B4J. Nessuno delle tre piattaforme hanno un ScrollView unico.
Puoi usare il mio B4XScrollView se pensi ti sia utile.
 

ivanomonti

Expert
Licensed User
Longtime User
Se è per B4X devi cambiare vista, ScrollPane è solo per B4J. Nessuno delle tre piattaforme hanno un ScrollView unico.
Puoi usare il mio B4XScrollView se pensi ti sia utile.
mai usato e non ho idea, se hai un esempio meglio e ti ringrazio
 

Star-Dust

Expert
Licensed User
Longtime User
 

Star-Dust

Expert
Licensed User
Longtime User

ivanomonti

Expert
Licensed User
Longtime User
Appena posso ti faccio un esempio d'uso, ma è semplice
ho visto ma non si adatta come lo scrollpane, ha la sua impostazione grafica che si stacca dal layout di base

2020-05-02_142549.jpg


B4X:
#Region Project Attributes
    #MainFormWidth: 600
    #MainFormHeight: 600
#End Region

Sub Process_Globals
    
    Private fx As JFX
    Private MainForm As Form
    Public Xmax,Ymax, MouseX, MouseY As Float
    
    Public Global As ClassGlobal
    
    Private mFooter As B4XView
    Private mMenuBar As B4XView
    Private mBase As B4XView
    Private mMessagePane As B4XView
    Private mScrollPane As ScrollPane
    
    Private FooterPane As B4XView
        
#region drag&drop
    Public DragDrop As DragAndDrop
    Public idDragDrop, fullnameDragDrop As String
#end region
    
#region login
    Public usernamelogin As String = Null
    Public  passwordlogin As String = Null
    Public idlogin As String = Null
    Public phonelogin As String = Null
    Public maillogin As String = Null
#end region

End Sub

Sub AppStart (Form1 As Form, Args() As String)
    Global.Initialize
    MainForm = Form1
    MainForm.Stylesheets.Add(File.GetUri(File.DirAssets,"css-33.css"))
    MainForm.Title="Lavagna v 1.0.0.1"
    MainForm.RootPane.LoadLayout("layout1") 'Load the layout file.
    mBase = Global.xui.CreatePanel("mbase")
    Global.mBaseSize(mBase,2000,2000)
    mScrollPane.InnerNode=mBase
    mFooter.LoadLayout("mFooter")
    MainForm.Show
    If Global.ToastMessage(mMessagePane,"Welcome back, I'm getting organized for work.") = True Then
    End If
    Global.mMenu_menu(mMenuBar,"Action",Array As String("Login","Close"))
    Global.mMenu_menu(mMenuBar,"Modules",Array As String("Organizer","Calendar"))
    Global.mMenu_menu(mMenuBar,"Additional modules",Array As String(""))
End Sub

Sub Application_Error (Error As Exception, StackTrace As String) As Boolean
    Return True
End Sub

Sub mMenuBar_Action

End Sub

Sub FooterButtonClose_MouseClicked (EventData As MouseEvent)
        MainForm.Close
End Sub
 

ivanomonti

Expert
Licensed User
Longtime User
Hai già abbandonato il progetto "Master + plugin" o... inizi da piccole parti grafiche? 😳

No assolutamente, stavo mettendo giu un master padre da poi condividere, in modo che da li possa capire cosa meglio fare, anche perchè il mio progetto e scritto alla cazzo, se devi lavorare con un team meglio partire con le cose ben fatte ;) e condivise

come scrivere i nomi delle sub nomesub_azione esempio
parametri che devono fungere da key per i plugins e le loro regole minimali
ecc ecc.

@LucaMs link per scaricare sorgente (imbastito)
 
Last edited:

ivanomonti

Expert
Licensed User
Longtime User
@LucaMs poi bisognerebbe creare una specie di Wiky con le funzioni pubbliche ho correggimi lo chiedo anche a te @Star-Dust e per il db mi piacerebbe che partecipasse anche @maXim e tutti gli altri
 

ivanomonti

Expert
Licensed User
Longtime User
Prima cosa dovresti appunto vedere chi voglia partecipare.
Poi analizzare cosa, come, etc.

Io, se proprio dovessi programmare, avrei già parecchio da fare; è la voglia che manca.
almeno hai visto l'esempio nel link :cool:
 

Star-Dust

Expert
Licensed User
Longtime User
@LucaMs poi bisognerebbe creare una specie di Wiky con le funzioni pubbliche ho correggimi lo chiedo anche a te @Star-Dust e per il db mi piacerebbe che partecipasse anche @maXim e tutti gli altri
Vuoi un aiuto per creare un Help?
Se non erro il motore che usa Wikipedia è gratuito. Io comunque non sono bravo per gli Help e non posso dare un supporto continuo, a periodi sparisco dal forum, come tutti d'altronde.
 

ivanomonti

Expert
Licensed User
Longtime User
@LucaMs quando si scrive bene una classe e abbastanza facile a trasferirla, ti devo comunque dire grazie per dei suggerimenti che hai dato inconsiamente ;) ho messo tutto il codice di questa sezione in un unica classe mentre prima erano due, in modo che con 2 righe di codice richiamo tutto senza problemi.

2020-05-02_201459.jpg
 
Top