Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.05.15;
Скачать: CL | DM;

Вниз

Удаления дубликатов в ListBox   Найти похожие ветки 

 
Киря   (2003-05-04 17:01) [0]

У меня в Listbox"e перечисляется список имён.
Как по нажатию на кнопку убрать все дублирующиеся имена?


 
Anatoly Podgoretsky ©   (2003-05-04 17:13) [1]

А зачем их туда помещать?


 
vlad40 ©   (2003-05-04 17:27) [2]

Если в ListBox"е у тебя отсортированный список, то можно так:

var list: TStringList;
...
list:=TStringList.Create;
list.Sorted:=True;
list.Assign(ListBox1.Items);
ListBox1.Items.Assign(list);
list.Free;
...


 
circul ©   (2003-05-04 17:29) [3]

function MySort(List: TStringList; Index1, Index2: Integer): Integer;
begin
Result := Integer(List.Objects[Index1]) - Integer(List.Objects[Index2]);
end;

procedure TfTestDll.Button1Click(Sender: TObject);
var
tL: TStringList;
i: Integer;
begin
tL:= TStringList.Create;
tL.Sorted := True;
tL.Duplicates := dupIgnore;
try
for i := 0 to ListBox.Items.Count-1 do
begin
ListBox.Items.Objects[i] := pointer(i);
end;

tL.AddStrings(ListBox.Items);
tL.Sorted := False;

tL.CustomSort(MySort);

ListBox.Items.Clear;
ListBox.Items.Assign(tL);

finally
tL.Free;
end;

end;


 
Юрий Зотов ©   (2003-05-04 17:44) [4]

А если любой, то так:

var
i, j: integer;
...
with ListBox1.Items do
begin
BeginUpdate;
try
for i := Count - 1 downto 1 do
begin
j := IndexOf(Strings[i]);
if (j >=0) and (j < i) then Delete(i)
end
finally
EndUpdate
end
end;



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

Текущий архив: 2003.05.15;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.019 c
14-46954
SergeySH
2003-04-24 17:46
2003.05.15
Помогите перевести на Паскаль!


1-46824
Сан Саныч
2003-05-02 08:50
2003.05.15
Как кзнать цвет парент-а ?


1-46710
Юлия
2003-05-04 11:40
2003.05.15
Создание собственных компонент


3-46566
Behemoth
2003-04-25 09:03
2003.05.15
Репликация БД.


3-46596
Wedos
2003-04-14 08:50
2003.05.15
Задание min и max в DbChart