Nie wiem co wy tutaj odstawiacie, ale sposób sortowania nijak ma się do tematu wątku; Czy to ważne jaką metodę się wykorzysta? Co to za różnica, czy to będzie bąbelkowe, czy przez wybór, itemy i tak zostaną właściwie poukładane pod warunkiem, że algorytm będzie zaimplementowany prawidłowo;
Według mnie autorowi chodzi o to, że ma problem z poukładaniem itemów w dwóch listach jednakowo, żeby nie pomieszać cen ze skuterami;
Jeśli przesuwasz, zamieniasz czy cokolwiek innego w pierwej liście, to samo rób w drugiej; Jeżeli musisz zamienić miejscami itemy o indeksach 0
i 1
, zrób to w obu listach jednocześnie:
procedure Sort(lbScooter, lbPrice: TListBox);
procedure _ReplaceItems(lbScooter, lbPrice: TListBox; Index1, Index2: Word);
begin
{ LISTA SKUTERÓW }
lbScooter.Items.Exchange(Index1, Index2);
{ LISTA CEN }
lbPrice.Items.Exchange(Index1, Index2);
end;
begin
{ TU PISZESZ ALGORYTM SORTUJĄCY, W KTÓRYM }
{ ZA ZAMIANĘ ITEMÓW W OBU LISTACH ODPOWIADA }
{ PROCEDURA _ReplaceItems }
end;
Dzięki temu podczas gdy potrzebujesz zamienić itemy, ta procedura zamieni je w dwóch listach; Jej przykładowe wywołanie:
{ ZAMIANA ITEMÓW O INDEKSACH 0 I 1 }
_ReplaceItems(lbScooter, lbPrice, 0, 1);
Inaczej będziesz miał bałagan; Sortowanie zaprogramuj sam, nie wykorzystując wbudowanego w kontrolkę, bo nie masz żadnej kontroli nad przenoszonym itemem podczas sortowania; Jeśli napiszesz go sam (pełno tego w sieci, opisy także na Wikipedii) będziesz mógł ręcznie przesuwać każdy item jednocześnie w dwóch listach, wykorzystując taki lub podobny algorytm jak opisałem wyżej; Podałem Ci tylko przykład zamiany itemów, właściwy algorytm sortujący napisz sam, bo dalej nie wiem z jakiego będziesz chciał skorzystać;
Poza tym, jeśli chcesz mieć coś na zasadzie tabelki, zamiast dwóch komponentów z klasy TListBox
utwórz sobie jeden z klasy TListView
; Sortowanie przeprowadzisz na itemach, które pamiętają swoje komórki; Nie sprzężysz dwóch ListBox pod jedno sortowanie, za to w ListView będzie działać tak, jak sobie zaplanowałeś;