Hallo,
ich bin mit Delphi erst seit 8 Monaten am arbeiten, deshalb verzeiht meine Unwissenheit
Folgende Fragen:
Was ist der Unterschied bei der TVCheckListbox zwischen
.Checked[i]
und
.State[i] = cbChecked
Wieso bringt mir
myselection.Find(TCheckListbox(Sender).Items[i],myKat)
keinen Wert im Debuger?
Wobei myselection eine interne Stringlist ist und der Event OnClickCheck einer Checklistbox im Form ausgelöst wurde.
Meine Intention ist, aus einer Checklistbox in einem Formular die markierten Einträge in einer internen Stringlist zu sammeln um sie anschließend in der
DB zu speichern bzw.zu löschen.
Irgendwie gelingt mir das nicht, die Liste aktuell zu halten hier mein Versuch:
Delphi-Quellcode:
begin
myLst:= TCheckListbox(Sender).Name;
if not assigned(myselection) then myselection := TStringList.create; //myselection.clear beim speichern
begin
myselection.Sort;
TCheckListbox(Sender).Sorted := True;
for i := TCheckListbox(Sender).Count-1 downto 0 do
// if TCheckListbox(Sender).Checked[i] then
if TCheckListbox(Sender).State[i] = cbChecked then
begin
if not (myselection.Find(TCheckListbox(Sender).Items[i],myKat)) then myselection.Add(TCheckListbox(Sender).Items[i]);
end
else
if (myselection.Find(TCheckListbox(Sender).Items[i],myKat)) and (TCheckListbox(Sender).State[i] = cbUnChecked) then
myselection.Delete(TCheckListbox(Sender).ItemIndex);
end;
end;
Was mach ich falsch?