waltersiekmann
Member
Hallo,
ich verfolge B4X schon seit Jahren. Hatte nur nicht die Zeit mich hier mal einzuarbeiten. Habe nun beim Start von Corona damit begonnen. Hänge aber seitdem eigentlich fest.
Ich würde gerne on the fly code für ein customview erzeugen. Habe X-Beispiele gelesen und probiert. Viele Beispiele sind für B4A. Doku zum 100ersten Male durchgelesen. Ich finde nicht den Fehler den ich mache.
Ich habe mal ein einfaches Beispiel angehangen das nicht funktioniert. Es sollte eigentlich nach dem "Initialize" im customModul das "DesignerCreateView" im customModul aufgerufen werden. Dies passiert einfach nicht. Die BasePane wird dadurch nicht zugeordnet und somit auch nicht das Layout geladen.
Vielleicht kann mir jemand einen kurzen Hinweis geben. Würde gerne dieses geplante Projekt in B4J erstellen.
mfg
Walter
ich verfolge B4X schon seit Jahren. Hatte nur nicht die Zeit mich hier mal einzuarbeiten. Habe nun beim Start von Corona damit begonnen. Hänge aber seitdem eigentlich fest.
Ich würde gerne on the fly code für ein customview erzeugen. Habe X-Beispiele gelesen und probiert. Viele Beispiele sind für B4A. Doku zum 100ersten Male durchgelesen. Ich finde nicht den Fehler den ich mache.
Ich habe mal ein einfaches Beispiel angehangen das nicht funktioniert. Es sollte eigentlich nach dem "Initialize" im customModul das "DesignerCreateView" im customModul aufgerufen werden. Dies passiert einfach nicht. Die BasePane wird dadurch nicht zugeordnet und somit auch nicht das Layout geladen.
Vielleicht kann mir jemand einen kurzen Hinweis geben. Würde gerne dieses geplante Projekt in B4J erstellen.
mfg
Walter
Main:
Sub Process_Globals
Private fx As JFX
Private MainForm As Form
Private ButtonStart As Button
Private CvM(20) As customModul
Private i As Int
End Sub
Sub AppStart (Form1 As Form, Args() As String)
MainForm = Form1
MainForm.RootPane.LoadLayout("MainView") 'Load the layout file.
MainForm.Show
For i = 1 To 3
CvM(i).Initialize(Me,"CvM_e")
Next
End Sub
'Return true to allow the default exceptions handler to handle the uncaught exception.
Sub Application_Error (Error As Exception, StackTrace As String) As Boolean
Return True
End Sub
Sub ButtonStart_MouseClicked (EventData As MouseEvent)
For i = 1 To 3
MainForm.RootPane.AddNode(CvM(i).GetBase,100 * i,100,90,30)
Next
End Sub
customModul:
Sub Class_Globals
Private fx As JFX
Private mEventName As String 'ignore
Private mCallBack As Object 'ignore
Private mBase As Pane
Private ButtonCV As Button
Private PaneCV As Pane
End Sub
Public Sub Initialize (Callback As Object, EventName As String)
mEventName = EventName
mCallBack = Callback
mBase.Initialize("")
End Sub
Public Sub DesignerCreateView (Base As Pane, Lbl As Label, Props As Map)
mBase = Base
Sleep(0)
mBase.LoadLayout("CVView")
End Sub
Private Sub Base_Resize (Width As Double, Height As Double)
End Sub
Public Sub GetBase As Pane
Return mBase
End Sub