Könnte mir jemand helfen diese Prozedur zum laufen zu bekommen? Es soll von allen doppelten Einträgen immer nur das unterste Item übrigbleiben. Hab schon länger rumprobiert bekomm aber immer nen "out of bounds" Fehler, sollte wohl andersrum anfangen also bei lv.items.count - 1 und vielleicht wär ne for schleife auch besser aber irgendwie krieg ichs grad net hin.
Delphi-Quellcode:
procedure DeleteFirstDoubles(lv: TListView; SubItem: integer = -1);
var
li1 : TListItem;
li2 : TListItem;
x : integer;
y : integer;
begin
if lv.Items.Count < 1 then Exit;
x := 0;
while x <= lv.Items.Count - 1 do
begin
li1 := lv.Items[x];
y := x + 1;
while y <= lv.Items.Count - 1 do
begin
li2 := lv.Items[y];
if SubItem > -1 then
begin
if AnsiSameText(li1.SubItems[SubItem], li2.SubItems[SubItem]) then
li1.Delete;
end
else
begin
if AnsiSameText(li1.Caption, li2.Caption) then
li1.Delete;
end;
inc(y);
end;
inc(x);
end;
end;
Alle meine Entchen...