ListBox1 i ListBox2 zmiany pozycji indexes

0

Mam listBox i function "Sortuj_Malejaco" Czyli najniższa wartość w ListBoxie ląduje na ostatnim miejscu Zastanawiam się jak uzupełnić kod lub napisać inna procedurę lub funkcję, aby w wypadku zamiany w ListBox sortuj_malejąco w drugim ListBox o tej samej liczbie items item o tym samym numerze Indexie "lądował" równolegle do pierwszego:
Innymi słowy (krótko i na temat) Mam 4 itemy w listbox1
item [0]:= '100'
item [1] := '65'
item [2] := '123'
item [3] := '165'
a w drugim
item [0] := 'Kaziu'
item [1] := 'Rysio'
item [2] := 'Czesio'
item [3] := 'Jasio'

Jeśli sortuje to item[3] jest jako item[0]
item[2] jest jako item[1] itd. Rzecz w tym, że wraz z przestawieniem w listbox1 mają ulec
takiej samej zamianie pozycje w ListBox2 ... czyli "wędrować" za items z list box1 Jak to zrobić ?:(

0

A czy te dane koniecznie muszą być prezentowane w TListBox? Bo lepiej imo nadawał by się do tego celu TListView, który również posiada gotowe zdarzenia do obsługi sortowania OnCompare. Jednak jeżeli chcesz koniecznie chcesz użyć TListBox, to ja bym dodał zawartości obu komponentów jako obiekty z dwoma polami typu string do TList, posortował je względem wartości elementów z ListBox1 przez porównywanie integrów jako StrToInt, a następnie wyczyścił oba TListBox i w pętli dodał elementy z TList, po czym zwolnił ową listę.

EDIT: żeby rozruszać swoje szare komórki przed południem napisałem przykładowy kod, chyba nic nie namieszałem. Z moich testów wynika, że działa jak należy. A i dzięki użyciu Val, obyło się bez StrToInt. I kod jest dodatkowo idiotoodporny. W załaczniku wszystkie potrzebne pliki. A temat przenoszę do Newbie, bo dotyczy według mnie może nie elementatnych, ale jednak podstaw języka. I na przyszłość proponuję chwilę pokombinować przez postowaniem. A do tego by prezentować kilka danych w wierszu, na prawdę lepiej używać jest wspomnianego TListView.

EDIT 2: w poprzednim kodzie był pewien błąd w ostatniej pętli, która oczywiście się nigdy nie wykonywała. Poprawione i jest ok.

1

A nie lepiej po prostu w funkcji "Sortuj_Malejaco" zamieniać miejscami pozycje na obu listach jednocześnie? Prosto i skutecznie.

1 użytkowników online, w tym zalogowanych: 0, gości: 1