Einzelnen Beitrag anzeigen

Benutzerbild von dahead
dahead

Registriert seit: 16. Mai 2005
620 Beiträge
 
#17

Re: KillDuplicates gibt Fehler mit CoolTrayIcon?

  Alt 30. Nov 2005, 10:50
Hi Lucius!

so müsste es hoffentlich funktionieren:

Delphi-Quellcode:
procedure KillDuplicates(SL: TStringList);
var
  I, F: integer;
begin
  for I := SL.Count - 1 downto 0 do
  for F := SL.Count - 1 downto 0 do
  if I <> F then
  if SL[I] = SL[F] then
   begin
    SL.Delete(F);
    Break;
   end;
end;
Edit: Alternativ könntest du auch beim Hinzufügen der Einträge zu deiner Stringliste die Eigenschaft Duplicates := dupIgnore setzen. Damit werden gleiche Items nicht mehr Hinzugefügt, und du sparst dir das KillDuplicates mit den zwei Schleifen.

Edit2:
Zitat:
Gibt es denn eine Function die doppelte Eintraege in einer Listview loescht?
Das halte ich pers. nicht für sinnvoll, du solltest die Daten (wie du es ja bereits machst) vor dem Anzeigen in der Listview auf Duplikate prüfen und ggf. löschen. Außerdem nicht sich das von der Funktion her egtl. nicht viel, sei es ListView oder StringList.

Da ich annehme, dass du die Torrents in einer Listview dem Benutzer anzeigen willst, plädiere ich für die erste Version (also vorher Duplikate raus, dann anzeigen), da es den Benutzer ja nicht zu interessieren braucht, ob da Duplikate drin sind oder waren. Außerdem dürfte es schneller gehen.
  Mit Zitat antworten Zitat