Noch eine Ergänzung:
Wieso willst du diese Liste ständig aktuell halten, wenn du sie nur beim Speichern benötigst? Es würde doch reichen, die Liste jeweils komplett neu zu laden, also am Anfang ein Clear und dann eine simple for/next Schlaufe. Du machst dir da das Leben irgendwie viel zu umständlich. Es gibt keinen Grund die Liste zu bearbeiten. Das ganze würde wohl sogar um einiges schneller ablaufen, wenn du da keine Suchoperationen nutzen musst. Also mach doch einfach das oder gib soagr ein Resultat retour, das du dann 1:1 direkt in die
DB schreiben kannst, ohne dass du beim Speichern noch die StringList verarbeten musst:
Delphi-Quellcode:
procedure TForm1.FillMySelection(const ACheckListbox: TCheckListbox);
var
StrIdx: Integer;
begin
if not Assigned(FMySelection) then
FMySelection := TStringList.Create
else
FMySelection.Clear;
for i := 0 to ACheckListbox.Count-1 do
if ACheckListbox.Checked[i] then
FMySelection.Add(ACheckListbox.Items[i]);
end;