Hey, kminie, kminie i nie moge ;) potrzebuje kodu, ktory porownuje zawartosc jednego listbox (listbox1) i drugiego (listbox2) i jezeli jest taki sam wpis w obu to usuwa go z pierwszego (listbox1). Juz robilem co moglem i nie mam juz pomyslow ;/
0
0
procedure TForm1.Button1Click(Sender: TObject);
var
i, j: integer;
begin
for i:=0 to listbox2.Count-1 do
begin
j:=0;
while j<listbox1.Count do
begin
if listbox1.Items.Strings[j]=listbox2.Items.Strings[i] then
listbox1.Items.Delete(j);
j:=j+1;
end;
end;
end;
Pozdrawiam
paweld
0
- Przepisujesz zawartosc listbox1 do jakiegos TStringList
- jedziesz po elementach listbox2 i jesli dany element z listbox2 wystepuje w tym stringlist, to go usuwasz (byc moze musisz uwzglednic wielokrotne wystapienia elementu ?)
- po zakonczeniu iterowania po listbox2 usuwasz zawartosc listbox1 i wstawiasz tam zawartosc Twojego TStringList
0
kodzilem i wykodzilem sam, ale troszeke z inna zasada. Jezeli znajdzie duplikat to nie usowa z listbox1 tylko dodaje ten wpis do listbox3, kod:
for i:=0 to form1.ListBox1.Items.Count-1 do
begin
for j:=0 to form1.ListBox2.Items.Count-1 do
begin
if form1.ListBox1.Items.Strings[i]=form1.ListBox2.Items.Strings[j]
then
begin
form1.ListBox3.Items.Add(form1.ListBox1.Items.Strings[i]);
end;
end;
end;
Dzieki wieskie za szybka pomoc ;) temat do zamkniecia ;)
0
A ja bym zrobił tak:
for i:= ListBox1.Items.Count - 1 downto 0 do
for j:= 0 to ListBox2.Items.Count - 1 do
if ListBox1.Items[i] = ListBox2.Items[j] then ListBox1.Items.Delete(i);
Zdążyłem przed zamknięciem ;-)
0
teraz zauwazylem, ze wczesniejsza wersja moich kodow rowniez dzialala, tylko trzeba bylo uzyc DOWN TO a nie TO x)