Italian [risolto non si ancora ma si scrive codice] [b4j] ancora da codice

ivanomonti

Expert
Licensed User
Longtime User
come posso ancorare un oggetto via codice <--->

da una classe creo dei pane via codice che vorrei ancorare al pane parent
 
Last edited:

ivanomonti

Expert
Licensed User
Longtime User
Cazzarola mi stavo disegnando a codice una mia list view personalizzata visto il periodo di merda che sto passando... ma a questo punto dovrò scrivere del codice in più.

@LucaMs come faccio (non ricordo) dalla classe creare un evento che possa essere richiamato dal main attraverso una sub

esempio nella mia classe classe, e nel main classe_click :-(

1678730675342.png
 

LucaMs

Expert
Licensed User
Longtime User
@LucaMs come faccio (non ricordo) dalla classe creare un evento che possa essere richiamato dal main attraverso una sub

esempio nella mia classe classe, e nel main classe_click :-(
Credo che tu voglia fare l'inverso di ciò che hai scritto (ma non è improbabile che io abbia capito male, tra il fatto che sono sveglio da poco e con mal di testa).

Se davvero dalla main vuoi chiamare una sub della classe, è ovvio che basti che nella classe la sub sia dichiarata Public.

Viceversa, invece, se nella classe hai un button (sarebbe meglio che dessi un'occhiata a come si crei una B4X custom view), nella routine-evento click del button dichiarato nella tua classe dovrai scrivere qualcosa come:
La tua classe:
#Event: Click

Sub Class_Globals
    Private mComponent As Object
    Private mEventName As String
End Sub

Public Sub Initialize(Component As Object, EventName As String)
    mComponent = Component
    mEventName = EventName
End Sub

Private Sub MioButton_Click
    Dim FullSignature As String
    FullSignature = mEventName & "_Click"
    If SubExists(mComponent, FullSignature) Then
        CallSubDelayed(mComponent, FullSignature)
    End If
End Sub

Quando inizializzerai l'oggetto-tua-classe, gli passerai ME:
B4X:
Dim MioOggetto As MiaClasse
MioOggetto.Initialize(Me, "NomeOggetto")
'NomeOggetto sarà il "nome evento", il prefisso, diciamo, per cui poi avrai:
Public Sub NomeOggetto_Click
End Sub
che sarà chiamato dalla classe.
 
Last edited:

LucaMs

Expert
Licensed User
Longtime User
Quello non ha a che fare con gli ancoraggi del Designer, non utilizzabili nel codice. E' un pane ancorabile (il che non è la stessa cosa, nel senso che nel Designer puoi ancorare qualunque tipo di view)
Ah, però...

E' vero che è quel pane che sarà ancorato, ma al suo interno è possibile ancorare altri nodi, usando SetAnchor(NodoDaAncorare).

Certo, funzionerà solo in B4J ma può essere utile.
(Sempre meglio creare B4X custom view, eh)
 
Top