Italian Panel personalizzato su CustomListView

Fulvio75

Well-Known Member
Licensed User
con wait for e questo codice non ho provato domani provo poi faccio sapere, magari funziona :)
 

Sagenut

Expert
Licensed User
Longtime User
B4X:
Sub clwBatteryViewer_ItemClick (Index As Int, Value As Object)

    Wait For (CLWCustomPanelSelection(Index)) Complete (Inutile As Boolean)
   
    CLWSelectedIndex = Index
    SelectedRecordId = clwDisplayedRecordsId.Get(Index)

    StartActivity(actBatteryDetails)
    actBatteryDetails.ReturnToActivity = "actBatteryStatus"
    actBatteryDetails.PageOpenMode = Functions.PageOpenMode.Edit
    actBatteryDetails.SelectedRecordId = SelectedRecordId
   
End Sub

Sub CLWCustomPanelSelection(Index As Int) as ResumableSub
   
    'Passare -1 a Index per deselezionare il CustomPanel selezionato
           
    'Deseleziono il pannello precedentemente selezionato
    If CLWSelectedIndex <> -1 Or Index = -1 Then
        'Colore del pannello customizzato contenuto nel pannello della CLW
        For Each CustomPanel As Panel In clwBatteryViewer.GetPanel(CLWSelectedIndex).GetAllViewsRecursive
            CustomPanel.Color = Colors.Transparent
        Next
    End If

    If Index <> -1 Then
        'Colore del pannello customizzato contenuto nel pannello della CLW
        For Each CustomPanel As Panel In clwBatteryViewer.GetPanel(Index).GetAllViewsRecursive
            CustomPanel.Color = Colors.Yellow
        Next
    End If
   
    'senza va in crash
    Sleep(1)
    Return True
End Sub
 

Fulvio75

Well-Known Member
Licensed User
B4X:
Sub clwBatteryViewer_ItemClick (Index As Int, Value As Object)

    Wait For (CLWCustomPanelSelection(Index)) Complete (Inutile As Boolean)
  
    CLWSelectedIndex = Index
    SelectedRecordId = clwDisplayedRecordsId.Get(Index)

    StartActivity(actBatteryDetails)
    actBatteryDetails.ReturnToActivity = "actBatteryStatus"
    actBatteryDetails.PageOpenMode = Functions.PageOpenMode.Edit
    actBatteryDetails.SelectedRecordId = SelectedRecordId
  
End Sub

Sub CLWCustomPanelSelection(Index As Int) as ResumableSub
  
    'Passare -1 a Index per deselezionare il CustomPanel selezionato
          
    'Deseleziono il pannello precedentemente selezionato
    If CLWSelectedIndex <> -1 Or Index = -1 Then
        'Colore del pannello customizzato contenuto nel pannello della CLW
        For Each CustomPanel As Panel In clwBatteryViewer.GetPanel(CLWSelectedIndex).GetAllViewsRecursive
            CustomPanel.Color = Colors.Transparent
        Next
    End If

    If Index <> -1 Then
        'Colore del pannello customizzato contenuto nel pannello della CLW
        For Each CustomPanel As Panel In clwBatteryViewer.GetPanel(Index).GetAllViewsRecursive
            CustomPanel.Color = Colors.Yellow
        Next
    End If
  
    'senza va in crash
    Sleep(1)
    Return True
End Sub
Questo è il mio codice, devo provarlo con quello nuovo
 

LucaMs

Expert
Licensed User
Longtime User
Non puoi allegare il progetto oppure un progetto di prova che utilizzi i tuoi layout?

(a dire il vero sto facendo dei backup che, secondo Windows... impiegheranno 1 giorno 😄 - scherzo, ogni tanto rallenta e quindi prevede quel tempo, ma comunque 20/30 minuti come minimo)
 

Fulvio75

Well-Known Member
Licensed User
Funziona non si impasta più :) :)
B4X:
Sub SelectCLWPanel(Index As Int) As ResumableSub
    
    Dim CLWPanelOld As Panel
    Dim CLWPanel As Panel
    Dim CustomPanel As Panel
        
    'Deseleziono il pannello precedentemente selezionato oppure se index è -1
    If CLWSelectedIndex <> -1 Or (Index = -1 And CLWSelectedIndex <> -1)  Then
        CLWPanelOld = clwBatteryViewer.GetPanel(CLWSelectedIndex)
        CustomPanel = CLWPanelOld.GetView(0)
        CustomPanel.Color = Colors.Transparent
    End If
    
    If Index <> -1 Then
        CLWPanel = clwBatteryViewer.GetPanel(Index)

        'Colore del pannello customizzato contenuto nel pannello della CLW
        CustomPanel = CLWPanel.GetView(0)
        CustomPanel.Color = Colors.Yellow       
    End If
        
    Return True
    
End Sub

Sub clwBatteryViewer_ItemClick (Index As Int, Value As Object)
    
    Wait For (SelectCLWPanel(Index)) Complete(Result As Boolean)
    
    CLWSelectedIndex = Index
    SelectedRecordId = clwDisplayedRecordsId.Get(Index)
    
    'visualizzo il pannello delle opzioni
    pnlBack.Visible = True
    pnlBatteryOptions.Visible = True
    BatteryOptionsShowed = True
    
End Sub
 
Top