Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [VB6] Ordinamento listview

    ..Ahh già immagino la vostra espressione disgustata la listview si ordina da sola, a che ti serve stà cosa?

    Allora ho questa listview piena di items.. vorrei tanto sviluppare una routine che una volta ordinata colorasse di rosso i i caratteri degli items uguali.. ovvero se ho due items della list view uguali, si devono colorare di rosso.

    Voi come fareste??

    Le mie listview le carico cosi (vedi codice), ma non ho nessuna idea su come rientrare nelle liste e confrontare gli elementi tra loro.. come in una nebbia fitta fitta.

    Ringrazio tutti coloro che vorranno aiutarmi.

    Ps: sto usando vb6 perchè mi serve in vba.. non so se può essere utile.

    codice:
    Private Sub UserForm_Activate()
    Dim ftime As Excel.Worksheet
    Dim fmark As Excel.Worksheet
    Dim cel As String
    Dim orario As ListItem, a As ListItem, b As ListItem, app As ListItem
    Dim indi As Integer, g1 As Integer, g2 As Integer
    Dim clonna As ColumnHeader
    Dim screen As Byte
    
    
    
    indi = 0
    
    Set ftime = Excel.Worksheets.Item("FILMS TIME")
    Set fmark = Excel.Worksheets.Item("Marketing")
    Set slot = CreateObject("System.Collections.ArrayList")
    
    
    If bool = False Then
        Set colonna = ListView1.ColumnHeaders.Add(, , "ORARI")
        Set colonna = ListView1.ColumnHeaders.Add(, , "SALA")
        Set colonna = gate1.ColumnHeaders.Add(, , "ORARI")
        Set colonna = gate1.ColumnHeaders.Add(, , "SALA")
        Set colonna = gate2.ColumnHeaders.Add(, , "ORARI")
        Set colonna = gate2.ColumnHeaders.Add(, , "SALA")
        bool = True
    End If
    
    ListView1.ListItems.Clear
    ListView1.Sorted = True
    gate1.ListItems.Clear
    gate1.Sorted = True
    gate2.ListItems.Clear
    gate2.Sorted = True
    
    
    
    For l = 8 To 79
        For d = 4 To 11
            cel = fmark.Cells(l, d).Text
            If cel <> "" Then
                screen = (l \ 4) - 1
                slot.Add cel
                Set orario = ListView1.ListItems.Add(, , cel)
                orario.SubItems(1) = screen
                If screen < 10 Then
                 Set orario = gate1.ListItems.Add(, , cel)
                 orario.SubItems(1) = screen
                Else
                 Set orario = gate2.ListItems.Add(, , cel)
                 orario.SubItems(1) = screen
                End If
                
            End If
        Next d
    Next l
    
    
    
    End Sub

  2. #2
    ok.. era abbastanza facile.. ma non ci riuscivo

    codice:
               
                If screen < 10 Then
                    Set orario = gate1.ListItems.Add(, , cel)
                    orario.SubItems(1) = screen
                Else
                    Set orario = gate2.ListItems.Add(, , cel)
                    orario.SubItems(1) = screen
                End If
                
              index = index + 1
            End If
        Next d
    Next l
    
    Call ColoraUguali(ListView1)
    
    
    End Sub
    
    Sub ColoraUguali(ByVal lista As ListView)
    
    For i = 2 To lista.ListItems.Count
     If lista.ListItems.Item(i) = lista.ListItems.Item(i - 1) Then
        lista.ListItems.Item(i).ForeColor = vbRed
        'lista.ListItems.SubItems.ForeColor = vbRed
        
     End If
    Next i
        
     
    
    End Sub
    ..Ma per colorare anche il subitem??

    Ciao

  3. #3
    ecco la soluzione..

    codice:
    
    
    Call ColoraUguali(ListView1)
    Call ColoraUguali(gate1)
    Call ColoraUguali(gate2)
    
    End Sub
    
    Sub ColoraUguali(ByVal lista As ListView)
    Dim app As ListItem
    
    
    For i = 2 To lista.ListItems.Count
    
    
     If lista.ListItems.Item(i) = lista.ListItems.Item(i - 1) Then
        Set app = lista.ListItems.Item(i)
        app.ForeColor = vbRed
        app.ListSubItems(1).ForeColor = vbRed
        Set app = lista.ListItems(i - 1)
        app.ForeColor = vbRed
        app.ListSubItems(1).ForeColor = vbRed
     End If
    Next i
    se un giorno qualcuno ne avesse necessità

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.