Mir ist das große Ganze noch nicht klar. Was ich aber aus dem Code lese ist, daß ein SearchEintrag angelegt wird, wenn er nicht als SubItem des Items "Name" existiert oder wenn das Item "Name" nicht existiert.
Was ich nicht verstehe ist, warum das ganze Item gelöscht wird, wenn der SearchString als SubItem in Item "Name" existiert. Ich hätte es noch nachvollziehen können, wenn lediglich das SubItem entfernt wird.
Zur Zeit passiert einfach folgendes:
Delphi-Quellcode:
CreateOrAddSearchStringToListItem('SubItem1', 'Item1');
CreateOrAddSearchStringToListItem('SubItem2', 'Item1');
CreateOrAddSearchStringToListItem('SubItem1', 'Item1');
CreateOrAddSearchStringToListItem('SubItem2', 'Item1');
- Item1 - SubItem1 wird angelegt
- Item1 - SubItem2 wird angelegt
- Item1 - wird gelöscht (mitsamt allen SubItems)
- Item1 - SubItem2 wird angelegt (weil Item1 nicht existiert)