Du kannst die ListView aber auch als StringList handeln...
Delphi-Quellcode:
var
list, newlist: TStringList;
meinString: String;
..............
function DupeInList(dupestring : string; list : TStrings; ignoreCase : boolean) : boolean;
var
i : integer;
dump : string;
l1, l2 : integer;
begin
result := true;
for i := 0 to list.count-1 do
begin
dump := list.Strings[i];
if ignoreCase then
begin
dump := UpperCase(dump);
dupestring := UpperCase(dupestring);
end;
l1 := length(dump);
l2 := length(dupestring);
if l1 = l2 then
if dump = dupestring then exit;
end;
result := false;
end;
function GiveListviewAsString(listView : TListView) : string;
var
i : integer;
l : TStrings;
dump : string;
begin
l := TStringList.Create;
for i := 0 to Listview.Items.Count-1 do
begin
dump := ListVIew.Items[i].Caption+ListVIew.Items[i].SubItems[0];
l.Add(dump);
end;
result := l.CommaText;
l.Free;
end;
function DupeInListView(dupeString : string; Listview : TListView): boolean;
var
list : TStrings;
begin
list := TStringLIst.Create;
list.CommaText := GiveListviewAsString(listview);
result := DupeInList(dupeString,list,true);
end;
Aufrufen tust es dann mit ...
Delphi-Quellcode:
if not DupeInListView(meinString,Form1.ListView1) then
newlist.Add(meinString)
Mag zwar net die saubere lösung sein, aber besser hatte ich es auch nicht geschafft.