Einzelnen Beitrag anzeigen

padavan

Registriert seit: 12. Jan 2005
271 Beiträge
 
Delphi 7 Enterprise
 
#1

Listview von doppelten Einträgen befreien.

  Alt 26. Okt 2005, 06:28
Moin Leute,
hat jemmand ne Idee wie man ´ne Listview von doppelten Einträgen befreien könnte?
Wobei nur die in der ersten Spalte relevant sind listivew.items[].caption, nicht die Subitems,
wohl aber sind oder könnten welche vorhanden sein. Und genau da liegt das Problem, denn evtl. vorhandene Subitems werden nicht mehr zurückgeschrieben.


Hab´s mal so versucht

Delphi-Quellcode:
procedure TForm1.Doppelkiller(Listview: TListview);
var
   i: integer;
   lTempList: TStringList;
begin
  screen.Cursor := crhourglass;
  if (Listview <> nil) then begin
    lTempList := TStringList.Create;
    try
      Listview.Items.BeginUpdate;
      try
        for i := 0 to Listview.Items.Count - 1 do
          if (lTempList.IndexOf(Listview.Items[i].Caption) = -1) then //IndexOf liefert -1 wenn nicht gefunden
        lTempList.Add(Listview.Items[i].Caption);
        Listview.Items.Clear;
        for i := 0 to lTempList.Count - 1 do begin
          listview.Items.Add;
          Listview.Items[i].Caption := lTempList[i];
        end;
      finally
        Listview.Items.EndUpdate;
      end;
    finally
      lTempList.Free;
      screen.Cursor := crdefault;
    end;
  end;
end;



//aufruf
  Doppelkiller(Listview);
Hab versucht den Code entsprechend zu ergänzen, wollte aber einfach nicht gelingen.
Nachdem ich dann auch auf andere Art und Weise (zwei gegenläufige Schleifen) nicht weiterkam, nerve ich euch jetzt damit...


Danke schonmal

(PS: der code stammt im Original von hier, allerdings für Listbox1)
  Mit Zitat antworten Zitat