Einzelnen Beitrag anzeigen

Blackpit

Registriert seit: 27. Feb 2019
77 Beiträge
 
#1

TVCheckListbox und TStringList

  Alt 6. Jul 2019, 18:24
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?
  Mit Zitat antworten Zitat