vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Top-Preis! AP-Access-Tools-CD Volume 1  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Fortgeschrittene Programmierung
Listboxe: Eine sortieren, 3 andere anpassen? 
Autor: niko001
Datum: 16.01.06 21:43

Hey!

Ich habe 4 Listboxen, von der ich EINE sortieren möchte, das klappt auch schon. Jetzt sollen aber die restlichen 3 Listboxen an die neu sortierte angepasst werden, d.h. die einträge sollen mit verschoben werden!
Wie könnte ich das lösen? Mein Sortiercode ist folgender:
Public Function LBSortItem(ByRef hLBox As ListBox, _
                           ByRef hOrder As Boolean) As Boolean
 
    Dim rApi        As Long
    Dim idx         As Integer
    Dim maxElements As Integer
    Dim tmpLB()     As String
 
    Debug.Print Timer & " " & Time$
    If hOrder = True Then
 
        'LB-Sortierung absteigend
        If hLBox.Sorted = True Then
 
            ' kann nicht sortiert werden !
            LBSortItem = False
            Exit Function
        End If
 
    Else
 
        ' LB-Sortierung aufsteigend (Standard!)
        If hLBox.Sorted = True Then
 
            'keine weitere Sortierung notwendig!
            LBSortItem = True
            Exit Function
        End If
    End If
 
    ' Einträge sortieren
    ' zuerst alle Einträge in Array u. sortieren
    ReDim tmpLB(hLBox.ListCount - 1)
    maxElements = hLBox.ListCount
    For idx = 0 To hLBox.ListCount - 1
        tmpLB(idx) = hLBox.List(idx)
    Next
 
    ' Array sortieren
    Call SortArray2(tmpLB(), 0, maxElements - 1)
 
    ' LB löschen/leeren u. wieder füllen
    hLBox.Clear
    ''
    lstName.Clear
    ''
    For idx = 0 To maxElements - 1
        If hOrder = True Then
           hLBox.AddItem tmpLB(idx), 0
        Else
           hLBox.AddItem tmpLB(idx)
        End If
    Next
    Debug.Print Timer; " "; Time$
End Function
 
' Array sortieren - Variante 2   >QuickSort<
'  < 1 sek. bei 1.000 / ca. 1 sek bei 10.000 Strings
Public Sub SortArray2(ByRef tmpArray() As String, ByVal idxLo As _
Long, ByVal idxHi As Long)
  Dim tmpString As String
  Dim tmpSwap   As String
  Dim tmpLow    As Long
  Dim tmpHi     As Long
 
  tmpLow = idxLo
  tmpHi = idxHi
  tmpString = tmpArray((idxLo + idxHi) / 2)
 
  While (tmpLow <= tmpHi)
    While (tmpArray(tmpLow) < tmpString) And (tmpLow < idxHi)
      tmpLow = tmpLow + 1
    Wend
 
    While (tmpString < tmpArray(tmpHi)) And (tmpHi > idxLo)
      tmpHi = tmpHi - 1
    Wend
 
    If (tmpLow <= tmpHi) Then
      tmpSwap = tmpArray(tmpLow)
      tmpArray(tmpLow) = tmpArray(tmpHi)
      tmpArray(tmpHi) = tmpSwap
      tmpLow = tmpLow + 1
      tmpHi = tmpHi - 1
    End If
  Wend
 
  If (idxLo < tmpHi) Then SortArray2 tmpArray(), idxLo, tmpHi
  If (tmpLow < idxHi) Then SortArray2 tmpArray(), tmpLow, idxHi
End Sub
Vielen Dank,
Niko
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Listboxe: Eine sortieren, 3 andere anpassen?669niko00116.01.06 21:43
Re: Listboxe: Eine sortieren, 3 andere anpassen?468vbtricks16.01.06 21:56
Re: Listboxe: Eine sortieren, 3 andere anpassen?434niko00116.01.06 22:21
Re: Listboxe: Eine sortieren, 3 andere anpassen?490vbtricks17.01.06 09:16
Re: Listboxe: Eine sortieren, 3 andere anpassen?401niko00117.01.06 19:00

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel