Italian Nome controllo

Fulvio75

Well-Known Member
Licensed User
Ciao ho un controllo che da designer ho chiamato Pippo e da codice ho bisogno di ottenere il nome di questo controllo che ho inserito in una list di controlli come B4XView, quindi facendo riferimento alla List avrò:

ListControlli as List (B4XView)

es:
ListControlli.Get(0) sarà Pippo.as(B4XView)
ListControlli.Get(1) sarà Pluto.as(B4XView)
ecc.ecc.

da codice voglio ottenere il nome Pippo del controllo in formato stringa, si può?

ho provato con il Tag e funziona ma dovrei inserire per ogni controllo il Nome
 
Last edited:

sirjo66

Well-Known Member
Licensed User
Longtime User
Ciao ho un controllo che da designer ho chiamato Pippo e da codice ho bisogno di ottenere il nome di questo controllo che ho inserito in una list di controlli come B4XView, quindi facendo riferimento alla List avrò:

ListControlli as List (B4XView)

es:
ListControlli.Get(0) sarà Pippo.as(B4XView)
ListControlli.Get(1) sarà Pluto.as(B4XView)
ecc.ecc.

da codice voglio ottenere il nome Pippo del controllo in formato stringa, si può?

ho provato con il Tag e funziona ma dovrei inserire per ogni controllo il Nome

Sinceramente ci avevo provato anche io, ma sembra che il sistema di scrivere "Pippo" sul Tag e quindi poi usare quello sia l'unica cosa da fare, almeno fino a qualche anno fa quando non c'erano le B4Xview, ora come ora non saprei

Non ho capito granché (eufemismo).

Normale 😂
 

sirjo66

Well-Known Member
Licensed User
Longtime User
forse mi sono spiegato male, ma stavo solo dicendo che magari con le B4Xview c'è qualche altro sistema

... e non rido 😄
 

Fulvio75

Well-Known Member
Licensed User
Forse se ci spieghi lo scopo finale, si potrebbe trovare un'alternativa.
'Evidenziazione bottone premuto e memorizzazione Id bottone (SelectedMainCommandButtonId)
private Sub CommandPressed_HighLight(Id As Int)

Dim Cmd As B4XView

Sleep(0)

Cmd = MainCommands.Get(Id)

CallSub(Me,Cmd.Tag & "_Click")

cmdHighLighting.Left = Cmd.Left-2.5dip
cmdHighLighting.Top = Cmd.top-2.5dip
cmdHighLighting.As(B4XView).SetColorAndBorder(Colors.yellow,1dip,Colors.Yellow,5dip)
cmdHighLighting.Visible = True

Wait For (Functions.WaitFor_Milliseconds(500)) Complete(Result As Boolean)

cmdHighLighting.Visible = False

'Una volta premuto il comando resetto la variabile
SelectedMainCommandId = -1

End Sub

Lo schermo non è Touch poi spiegare il tutto è un casino troppo lungo...😝😝
 

LucaMs

Expert
Licensed User
Longtime User
Ho il cervello bloccato🤣🤣
Con il Sender non mi viene in mente nulla
Il Sender, in un evento della View (o B4XView) "rappresenta" la View che ha scatenato l'evento (non so se tu indessi questo o come fruttarlo).
Quindi, se hai:
B4X:
Private Sub NomeEventoDatoAdAlcuniButton_Click
    Dim btn As Button = Sender
'...
End Sub

E' un po' come se lo ricevessi come parametro, come fosse:
B4X:
Private Sub NomeEventoDatoAdAlcuniButton_Click(btn As Button)
 

Fulvio75

Well-Known Member
Licensed User
Il Sender, in un evento della View (o B4XView) "rappresenta" la View che ha scatenato l'evento (non so se tu indessi questo o come fruttarlo).
Quindi, se hai:
B4X:
Private Sub NomeEventoDatoAdAlcuniButton_Click
    Dim btn As Button = Sender
'...
End Sub

E' un po' come se lo ricevessi come parametro, come fosse:
B4X:
Private Sub NomeEventoDatoAdAlcuniButton_Click(btn As Button)
Mi viene più complicato
 

Sagenut

Expert
Licensed User
Longtime User
Non ho capito granché (eufemismo).

Forse se ci spieghi lo scopo finale, si potrebbe trovare un'alternativa.

Comunque, anche se ancora non l'ho mai usato, forse è possibile usando DSE.
Credo sia l'unica alternativa al Tag
 
Top