ich würde das .BeginUpdate und .EndUpdate noch mit in KillDuplicates reinverschieben
und es könnte nicht schaden, wenn man dieses dann auch noch mit Try-Finally absichert.
und warum gibt es nicht sowas wie Self für das With-Do?
dann könnte man es ohne Variabe und inplace gleich so machen
Delphi-Quellcode:
with TStringList.Create do
try
Duplicates := dupIgnore;
Assign(Memo1.Lines);
Memo1.Lines.Assign({self});
finally
Free;
end;