Sortowanie 2 listbox-ów

0

to było już na forum,ale brak konkretnej odpowiedzi.

są dwa listboxy 1- zawierający stringi , 2-zawierajacy integery

czy jest jakiś sposób by po kliknięciu na sorted pierwszego listboxa nie zgubić przypodządkowania do siebie elementów dwóch listboxów? coś jakby zmodyfikowanie procedury sortującej aby przy zmianie polozenia elementu pierwszego listboxa zmieniala te same elementy w drugim . czy trzeba zrobić procedurkę ręcznie ?

0

trzeba napisać ręcznie

0

chyba o takie cus Ci chodzi.
kod stary jest i pewnie wolny ale cos tu niby jest :)
sam juz nawet dokaldnie nie pameitam co do czego jest :D

  type tliczby=record liczba:shortint;
               end;
  tdane=array [1..101]of tliczby;
var
  Form1: TForm1;
   i,b,j:shortint;
   k:tdane;
  tab,a: array [1..101] of Integer;
  nn:array[1..101]of string;
  li : Integer;

procedure TForm1.Button2Click(Sender: TObject);
var zm,ilo:boolean;
pom:integer;
pom2:string;
begin
i:=0;
repeat
tab[i+1]:=0;
i:=i+1;
until i=101;
i:=0;
repeat
if memo1.lines.strings[i]<>'' then tab[i+1]:=strtoint(memo1.lines.Strings[i]);
i:=i+1;
until i=101;
j:=101;
repeat
zm:=false;
j:=j-1;
for i:=1 to j do
if tab[i]<tab[i+1] then
begin
pom:=tab[i]; tab[i]:=tab[i+1]; tab[i+1]:=pom;
zm:=true;
end;
until not zm;

i:=1;
repeat
memo2.Lines.Strings[i-1]:=inttostr(tab[i]);
i:=i+1;
until i=102;
memo2.Lines.Strings[0]:=memo2.Lines.Strings[0]+'';
end;

procedure TForm1.FormShow(Sender: TObject);
var zm,ilo:boolean;
pom:integer;
pom2:string;
begin
memo1.lines.loadfromfile(extractfilepath(application.exename)+'wyndlp.dat');
memo3.lines.loadfromfile(extractfilepath(application.exename)+'wyndli.dat');
progressbar1.Position:=1;
i:=0;
repeat
tab[i+1]:=0;
i:=i+1;
until i=101;
progressbar1.Position:=2;
i:=0;
repeat
nn[i+1]:='nikt';
i:=i+1;
until i=101;
progressbar1.Position:=3;
i:=0;
repeat
if memo1.lines.strings[i]<>'' then tab[i+1]:=strtoint(memo1.lines.Strings[i]);
i:=i+1;
until i=101;
progressbar1.Position:=4;
i:=0;
repeat
if memo3.lines.strings[i]<>'' then nn[i+1]:=memo3.lines.Strings[i];
i:=i+1;
until i=101;
progressbar1.Position:=5;
j:=101;
repeat
zm:=false;
j:=j-1;
for i:=1 to j do
if tab[i]<tab[i+1] then
begin
pom:=tab[i]; tab[i]:=tab[i+1]; tab[i+1]:=pom;
pom2:=nn[i]; nn[i]:=nn[i+1]; nn[i+1]:=pom2;
zm:=true;
end;
until not zm;
progressbar1.Position:=7;
i:=1;
repeat
memo2.Lines.Strings[i-1]:=inttostr(tab[i])+'  '+nn[i];
memo1.Lines.Strings[i-1]:=inttostr(tab[i]);
memo3.Lines.Strings[i-1]:=nn[i];
i:=i+1;
until i=102;
progressbar1.Position:=9;
memo2.Lines.Strings[0]:=memo2.Lines.Strings[0]+'';
memo1.lines.savetofile(extractfilepath(application.exename)+'wyndlp.dat');
memo3.lines.savetofile(extractfilepath(application.exename)+'wyndli.dat');
progressbar1.Position:=10;
close;
end;
0

a dałby ktoś przykład kodziku jakiegoś szybkiego sortowania elementow typu string w listboxi-e?

0

dzięki , już się uporałem

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