Вниз
Скачать: CL | DM;

удаление повторяющихся строк   Найти похожие ветки 

← →
Chipik   (2005-08-14 05:44) [0]

Уже месяц сижу, не получается. Надобно дубликаты удалить из ListBox"а, а то как-то неудобно, да и информации лишней много. Помогите, пожалуйста. Заранее благодарен.


← →
Defunct ©   (2005-08-14 08:10) [1]

procedure DeleteDublicates( AListBox : TListBox);
var
 i, j : integer;
 CanAdd : boolean;
begin
 SendMessage( AListBox.Handle, WM_SETREDRAW, 0, 0);
 with TStringList.Create do
 try
    for i := 0 to AListBox.Count - 1 do
    begin
       CanAdd := True;
       for j := 0 to Count - 1 do
          if Strings[j] = AListBox.Items[i] then
          begin
            CanAdd := False;
            break;
          end;
       if CanAdd then
          Add( AListBox.Items[i]);
    end;

    AListBox.Items.Text := Text;

 finally
    free;
    SendMessage( AListBox.Handle, WM_SETREDRAW, 1, 0)
 end;
end;


← →
begin...end ©   (2005-08-14 09:25) [2]

> Chipik   (14.08.05 05:44)

with ListBox do
begin
 I := Pred(ListBox.Count);
 while I > 0 do
 begin
   for J := I - 1 downto 0 do
     if ListBox.Items[J] = ListBox.Items[I] then
     begin
       Items.Delete(J);
       Dec(I)
     end;
   Dec(I)
 end
end


Если же ListBox можно отсортировать, или он уже отсортирован, то можно и так:

with TStringList.Create do
 try
   Sorted := True;
   Text := ListBox.Items.Text;
   ListBox.Items.Text := Text;
 finally
   Free
 end


Также можно подумать о том, чтобы не добавлять дубликаты в ListBox, вместо того чтобы потом удалять их из него.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.023 c
1-1125497772
Карелин Артем
2005-08-31 18:16
2005.09.25
Константа - массив записей. Как делать?


14-1125566369
May3ep
2005-09-01 13:19
2005.09.25
Не пойму, что с компьютером


1-1125396434
Shakal
2005-08-30 14:07
2005.09.25
Плейлист в Delphi?


14-1124939557
тихий вовочка
2005-08-25 07:12
2005.09.25
Вопросы производительности труда


3-1123963760
redlord
2005-08-14 00:09
2005.09.25
не соответствие типа поля и данных (Asdatetime)




   Наверх