Italian lista di scelte

3394509365

Active Member
Licensed User
Ho un' app che avevo sviluppato con Basic4A versione 3.20 adesso la sto passando alla versione 9.

Alcune cose non mi funzionano più, per esempio io facevo questo:

sembrerebbe che x.InputList1 non esista in questa versione


B4X:
Dim r As List
       r.Initialize
       r.AddAll(Array As String("Rinomina","Elimina","Copia"))
       Dim Sce As Int' risposta alla scelta
       Dim x As id ' libreria
       Sce = x.InputList1(r,"Fai una scelta")
     
      Select Case  Sce
     
           Case 0' Rinomina
                   RinominaTabella'_Click  
                Listatabelle            ' ricalcola le tabelle          
               
           Case 1'Elimina
                   EliminaTabella
                Listatabelle    ' ricalcola le tabelle          
            Case 2'Copia
                   CopiaTabella
                Listatabelle    ' ricalcola le tabelle  
      End Select
     
Else' se la scelta è vuota

      Msgbox("Non hai selezionato nulla","ATTENZIONE")
     
End If



Avete idea di come fare nella versione attuale?

Grazie
 

3394509365

Active Member
Licensed User
grazie per la risposta, sto provando ma mi da questo errore


Dim res As Int = fx.InputList(MainForm, items, "Please choose an item", "Items", 0)

la fx mi dice non dichiarato

e poi cos' è MainForm non mi da la struttura dopo la parentesi.

io uso B4A
 

3394509365

Active Member
Licensed User
in effetti, funziona grazie e nemmeno tanto difficile, ma non mi convincono due cose.

N1. ho questo codice:

B4X:
Dim Sce As String' risposta alla scelta
        Dim options As B4XListTemplate
   
        options.Initialize
        options.Options = Array("Rinomina","Elimina","Copia")
        options.AllowMultiSelection = False
   
        Wait For (dialog.ShowTemplate(options, "OK", "", "CANCEL")) Complete (Result As Int)
'  
        If Result = xui.DialogResponse_Positive Then
            dialog.Show($"You selected: ${options.SelectedItem}"$, "OK", "", "")
        End If
   
   
        Sce=options.SelectedItem   'options.SelectedItem per scelte multiple
     
     
        Select Case  Sce
     
            Case  "Rinomina"  '0'"Rinomina"
                RinominaTabella'_Click
                Listatabelle            ' ricalcola le tabelle
               
            Case "Elimina"' 1'Elimina'
                EliminaTabella
                Listatabelle    ' ricalcola le tabelle
            Case "Copia"'2'Copia
                CopiaTabella
                Listatabelle    ' ricalcola le tabelle
        End Select
non capisco perchè il programma si ferma ad aspettare la scelta delle tre opzioni ma va avanti subito dopo anche se ancora c' è l' altra finestra aperta e devo scegliere OK.

B4X:
If Result = xui.DialogResponse_Positive Then
            dialog.Show($"You selected: ${options.SelectedItem}"$, "OK", "", "")
        End If
Pure qui devo mettere un Wait ?

N2.

per fare funzionare xxxx ho dovuto fare questo:

'nelle dichiarazioni

Public dialog As B4XDialog
Private Base As B4XView

e poi questo:

Base= Activity
dialog.Initialize(Base)

Capisco l' inizialize ma no Il Base=Activity

Grazie
 
Last edited:

LucaMs

Expert
Licensed User
Pure qui devo mettere un Wait ?
Esatto.

Base= Activity
dialog.Initialize(Base)

Capisco l' inizialize ma no Il Base=Activity
La dialog.Initialize richiede una B4XView, quindi non puoi passargli direttamente Activity, il cui tipo è Panel, come vorresti fare, e scrivendo quella riga in pratica esegui un casting, Base "diventa Activity" ma di tipo B4XView (ammazza come spiego male, hehehe).



B4X:
        Select Case  Sce
            Case  "Rinomina"  '0'"Rinomina"
                RinominaTabella'_Click
                Listatabelle            ' ricalcola le tabelle
            Case "Elimina"' 1'Elimina'
                EliminaTabella
                Listatabelle    ' ricalcola le tabelle
            Case "Copia"'2'Copia
                CopiaTabella
                Listatabelle    ' ricalcola le tabelle
        End Select
Non vedi qualcosa di "strano" in quel codice?
Listatabelle la esegui in ogni caso - e suppongo che sia più che giusto; quindi...
B4X:
        Select Case  Sce
            Case  "Rinomina"  '0'"Rinomina"
                RinominaTabella'_Click
            Case "Elimina"' 1'Elimina'
                EliminaTabella
            Case "Copia"'2'Copia
                CopiaTabella
        End Select
        Listatabelle    ' ricalcola le tabelle
 
Top